Apache Struts

「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制

江枫思渺然 提交于 2020-10-05 04:56:20
0 复习 代理模式 代理模式,可以为目标类添加额外功能。 Spring 动态代理 定义目标类对象 定义额外功能,增强。实现Spring内置的接口 配置增强类 定义切入点 编织组装 增强类型 前置增强 MethodBeforeAdvice 后置增强 AfterReturningAdvice 异常增强 ThrowsAdvice 环绕增强 MethodInterceptor 切入点表达式 execution(返回值类型 包名.类名.方法名(参数表)) execution(* com.bcl.service.*.*(..)); args(参数表) within(全类名) @annotation(自定义注解) 事务的隔离级别 1 再谈web.xml 1.1 web.xml中标签的加载顺序 到目前为止web.xml中出现的标签: servlet filter listener context-param 。 加载顺序,从前到后: context-param 定义一对键值对数据,通常为listener使用 listener ContextLoaderListener:在web应用启动时执行,创建Spring工厂 filter Struts2Filter:过滤所有请求 servlet 1.2 Servlet的url-pattern的配置方式 Servlet的url-pattern有4种配置格式:

软件概要设计-模板

岁酱吖の 提交于 2020-10-03 20:04:45
1 引言 1.1 编写目的 本说明书目的在于明确说明系统各功能的实现方式,指导开发员进行编码。 本说明书的预期读者为:系统设计者、系统开发员。 1.2 背景 待开发软件系统的名称:物流配送管理系统 此软件系统任务提出者:客户(从事物流业) 此软件系统任务开发者: IT_MOB小组 此软件系统任务用户:需要提供配送的客户、配送点和物流总公司 1.3 基线 物流配送管理系统需求分析说明书 v1.0 1.4 特殊名词定义 客户:客户分为已达成交易的实际客户和未交易的潜在客户,本文档涉及到的所有客户都是已注册并登陆客户端的用户。 1.5 参考资料 属于本项目的其他已发表的文件。 本文件中引用的其他文献、资料以及软件开发标准。 2 总体设计 2.1 概述 2.2 系统环境描述 系统包括的范围:物流配送管理系统。 2.2.1 运行环境 2.2.1.1 软件环境 分类 名称 版本 语种 操作系统 Windows XP 2000 简体中文 操作系统的附加功能 SP4 3 简体中文 数据库平台 oracle 92 简体中文 应用平台 tomcat 5.0 简体中文 邮件系统 Foxmail 4.2.0 简体中文 客户端软件 MS IE 7.0 简体中文 2.2.1.2 硬件环境 服务器 最低配置 推荐配置 应用和数据库服务器 1CPU : P4 2.0G 1CPU : P4 2.8G Mem :

漏洞利用的速度比发布的CVE快

感情迁移 提交于 2020-10-02 01:27:41
一、前言 随着新漏洞数量的不断增加,漏洞管理已成为确保业务连续运行的最关键过程之一。很明显,及时修补是必不可少的,但定量了解延迟如何增加风险也很重要。攻-击者使用刚刚披露的CVE或未知(0day)漏洞来破坏是什么?为了了解漏洞披露和漏洞利用开发的状况,在撰写本文时,研究人员分析了Exploit Database中的45,450种公共可用漏洞。该研究将漏洞利用数据与漏洞和补丁信息相关联,以从多个方面研究漏洞的发展。 研究表明: 在漏洞数据库中的45,450个公共漏洞中,漏洞数据库中有1,1,079(〜26%)个已映射CVE编号的漏洞。 在这1,1,079个漏洞中:14%是0day(在供应商发布补丁之前发布),23%在补丁发布后一周内发布,50%在补丁发布后一个月内发布。平均而言,漏洞发布是在补丁发布后37天发布的。尽快修补-供应商发布修补程序后,被利用漏洞的风险迅速增加。 在发布CVE之前,已经发布了80%的公共漏洞利用程序。平均而言,漏洞利用是在CVE发布前23天发布的。软件和硬件也可能带有没有CVE的公共漏洞。经常检查供应商的安全更新,并尽快应用更新。 自1999年以来的整个CVE列表,发现平均而言,分配CVE-ID 40天后发布CVE。在撰写本文时,研究人员分析了177,043个条目,其中超过10,000个CVE处于“保留”状态已超过两年

EL表达式取值的范围-动力节点

醉酒当歌 提交于 2020-10-01 02:46:17
有些朋友对于EL表达式取值的范围不是很了解,在Struts2中对request进行了装饰,增强了getAttribute()方法,改变了EL该方法的查找范围,具体为,查找request域,不存在,查找值栈,不存在,查找ContextMap,还是不存在,则返回null。 EL表达式取值 因为${对象名},会使用findAttribute的查找,其顺序是page域->request域->session域->application域原理如下: public class PageContext{ //在page域中根据name获取value public Object getAttribute(String name){ return "找到了返回对象" | "没找到返回null"; } //从四个域中逐个搜索,只要在其中一个找到,就不再继续寻找 public Object findAttribute(String name){ Object value = null; //搜page域 value = this.getAttribute(name); if(value != null){ return value; } //搜request域 value = this.getRequest().getAttribute(name); if(value != null){return

一看就懂的Spring、SpringMVC和SpringBoot!

萝らか妹 提交于 2020-09-28 04:58:09
一、概念 1、Spring Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。 2、SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。SpringMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校验等。SpringMVC是一个MVC的开源框架,SpringMVC=struts2+spring,springMVC就相当于是Struts2加上Spring的整合。 3、SpringBoot Springboot是一个微服务框架,延续了spring框架的核心思想IOC和AOP,简化了应用的开发和部署。Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题—>习惯大于约定。 二、原理和结构 1、Spring的原理和组成 Spring为简化我们的开发工作,封装了一系列的开箱即用的组件功能模块,包括:Spring JDBC 、Spring

easyui tree页面加载速度慢

ぃ、小莉子 提交于 2020-09-24 03:19:52
前台代码: $("#bzfxtree").tree({ method: "get", lines: true, url: "./iface/findEprjStdListLibTree", queryParams:{stdListLibId:stdListLibId,flag:flag}, checkbox:true, onlyNodeExpand: false, autoBindDblClick: false, toggleOnClick: true, onClick:function(node){ }, onDblClick:function(node){; }, loadFilter:function(data,parent){ return dispTreeNode(data); }, onLoadSuccess:function(){; }, }); /** * 处理树节点 */ function dispTreeNode(data){ for(var i=0;i<data.length;i++){ var node=data[i]; if (node["children"] && node["children"].length>0){ node["state"]="closed"; node["children"]=dispTreeNode(node["children

Java常问面试题整理,帮你搞定‘金9银10’(附答案纯干货)

霸气de小男生 提交于 2020-09-23 16:53:02
前言: 工作做螺丝钉,面试造火箭,我想这个是每个程序员比较头疼的事情,但是又有必须经历的流程,尤其是摸不清面试官问的问题,准备不充分,导致面试的时候不知道如何回答。本文是小编个人从几十次面试中挑选的面试几率比较大的一些题,保证都是大家被问过的(就是这么自信),希望对大家找工作有所帮助。 下方的题只是我整理出来的一部分常问面试题,另外本人整理收藏了20年多家公司面试知识点整理 ,以及各种Java核心知识点免费分享给大家,下方只是部分截图 想要资料的话也可以点击 795983544 领取 暗号CSDN。 基础部分 一丶抽象类和接口的区别 1.语法区别 (1)抽象类可以有构造方法,接口不能有构造方法; (2)抽象类中可以有普通成员变量,接口中没有普通成员变量; (3)抽象类中可以有非抽象的方法,接口中的方法都必须是抽象的; (4)抽象类中的方法可以是public,protected类型,接口中的方法只能是public类型的,切 默认为public abstract类型; (5)抽象类中可以有静态方法,接口中不能有静态方法; (6)抽象类中的静态变量访问类型可以是任意的,但接口中的静态变量只能是public static final 类型。 (7).一个类可以实现多个接口,但一个类只能继承一个抽象类; 2.应用区别 接口更多是在系统架构方面发挥作用,主要用于定义模块之间的通信契约

软件架构模式---分层架构V2.0

三世轮回 提交于 2020-08-18 11:47:11
一、什么是架构模式? 刚做了软考题,有一道关于提问设计模式是什么的,设计模式是一套解决类似问题的经验的总结。采用设计模式的目的是为了可重用代码。而架构模式也一个通用的、可重用的解决方案。我觉得他们的区别是,设计模式跟代码更有直接关系, 架构模式站在系统全局的角度解决子系统之间的关系、功能需求与非功能的优先级与取舍原则等。 二、分层模式 (参考https://www.cnblogs.com/IcanFixIt/p/7518146.html) 这种模式也称为多层体系架构模式。它可以用来构造可以分解为子任务组的程序,每个子任务都处于一个特定的抽象级别。每个层都为下一个提供更高层次服务。分层模式的关键点在于确定依赖:即通过分层,可以限制子系统间的依赖关系, 使系统以更松散的方式耦合,从而更易于维护。区分层次的目的是为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。常见的分层模式结构有以下几种: 一)一般信息系统中最常见的是如下所列的4层:表示层,业务逻辑层,持久层,应用层。 模式介绍: 表示层(也称为UI层):主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。 应用层(也称为服务层):服务层的作用就是将表现层与业务逻辑层之间完成解耦。那么表现层中就不会出现任何的业务代码,当然这样带来的好处也是显而易见的,就是当我们修改业务层代码时

Action封装:模型驱动

旧时模样 提交于 2020-08-17 16:53:06
区别在于Action和JSP Action: package com.example.struts; import com.example.struts.domain.User; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ModelDriven; public class UserModelAction implements Action, ModelDriven<User> { // 必须手动实例化 private User user = new User(); private String code; public String getCode() { return code; } public void setCode(String code) { this.code = code; } @Override public String execute() throws Exception { System.out.println(user); System.out.println(code); return NONE; } @Override public User getModel() { return user; } } jsp: <h2>模型驱动</h2> <form

Bulehero 蠕虫病毒安全分析报告

十年热恋 提交于 2020-08-17 08:00:31
作者:answerboy @知道创宇404积极防御实验室 时间:2020年8月5日 1 概述 近日知道创宇404积极防御团队通过知道创宇云防御安全大数据平台(GAC)监测到大量利用Struts2、ThinkPHP等多个Web组件漏洞进行的组合攻击,并捕获到相关样本,经分析确认该样本为Bulehero蠕虫病毒。目前该Web攻击均被创宇盾拦截;知道创宇NDR流量监测系统也已经支持检测所有相关恶意IOC及流量。 2 追溯分析 2.1 发现攻击 2020年7月26日,通过日志分析发现IP: 47.92.*.* (北京)、 119.23.*.* (广东)、 117.89.*.* (南京)等多个IP对客户网站发起Web漏洞攻击,通过远程下载并执行恶意文件Download.exe,如下: ThinkphpV5进行攻击: Tomcat PUT方式任意文件文件上传: Struts2远程命令执行: 经过分析,发现Download.exe为下载器,执行流程如下: 图1-执行流程 2.2 详细分析 2.2.1 Download.exe Download.exe作为下载器,攻击成功之后会继续前往 http://UeR.ReiyKiQ.ir/AdPopBlocker.exe 下载AdPopBlocker.exe到系统TEMP目录并创建名为Uvwxya和fmrgsebls的计划任务来实现自启动,如下: 图2