
- 使用人员
- JavaWeb网站开发人员
- 外文名
- Struts
- 平 台
- Java
- 中文名
- struts
- 实 质
- 基于MVC的WEB框架
-
Struts2视频_全面开战
2015-05-12 16:23:30本Java视频教程对 Struts2 庞杂的技术点进行抽丝剥茧,提炼出企业开发的核心技术和重要技能。每个技术点都配备案例和代码,对于拦截器、Struts2 运行流程分析、值栈等技术点的讲授更是深入解析源代码,授之以渔。 -
struts2必备jar包官方绿色版
2012-10-08 18:02:42struts2最新官网的jar包,已经是最少的包的无法再删除了, commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang3-3.1.jar commons-logging-1.1.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.jar ... -
struts框架jar包
2008-07-11 18:55:33logging-1.0.4.jar commons-validator-1.3.1.jar jstl-1.0.2.jar oro-2.0.8.jar standard-1.0.2.jar struts-core-1.3.8.jar struts-el-1.3.8.jar struts-extras-1.3.8.jar struts-faces-... -
Struts1自学教程
2015-04-29 21:31:43Struts1是Struts2学习的基础,懂了Struts1,学习Struts2会变得很轻松。很多遗留系统,需要维护,也需要我们懂点Struts1的知识。本次课程为14个学时,将从Struts1.x的环境搭建以及技术准备入手,利用Struts1.x实现... -
Struts1.3——Struts入门
2016-06-21 20:48:50本文介绍了struts的入门知识,通过手工配置实现一个struts项目介绍了struts的工作原理和流程1.Struts的几个基本概念
1.struts是一个开源框架(frameset)
2.struts是一个Web框架
3.struts是一个基于MVC的Web框架2.为什么有struts
因为我们对MVC的理解不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展以及提高开发效率,所以我们有必要用一个统一的规范来开发项目。所以出现了struts.
struts是通过采用Java的Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品
struts的优缺点如下:
1.struts的好处:程序更加规范化
程序开发的效率提高了
程序的可读性增加
程序的可维护性增加2.struts的不足之处:
form表单有点鸡肋
action是单态(对网站并发性的处理有影响)这些内容后面会介绍。
我们要知道的是:框架在提高了程序的规范的同时,也约束了程序员的自由。
3.struts的原理
以一个用户登录验证的例子说明。
3.1.时序图
1.ActionServlet是总控制器,它是struts给我们提供的,我们无需自己写,只需要配置即可。ActionServlet管理struts-config.xml文件,而这个文件是struts的核心文件,该文件配置了ActionForm,还配置了Action,以及它们的对应关系等。
2.ActionForm是表单,用于存放数据。开发ActionFrom必须要继承ActionForm类,这是规范。
3.Action是分控制器,在Struts中,Action可以有多个.它的本质就是Servlet。开发一个Action也要继承Action类。
4.Model(Java类,Service类,ejb等)3.2.struts入门案例
以上述用户登录验证来演示,并且使用手动配置的方式来开发第一个struts项目,项目名称为strutslogin。
首先,项目目录结构如下所示:【步骤】:
1.在开发struts的时候,需要struts的开发包struts的开发包可到官网下载【下载地址】,它的最新版本是2.5.1(2016年6月21日)。由于目前所学为1.3的版本,所以我下载Struts 1.3.10。并把所有的jar包加入到当前项目的lib文件夹。
2.先写出login.jsp
写最简单的登录页面login.jsp,如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head> <body> <form action="/strutslogin/login.do" method="post"> UserName:<input type="text" name="username"/><br><br> Password:<input type="password" name="password"/><br><br> <input type="submit" value="Login"/> </form> </body> </html>
- 注意,为了安全起见,login.jsp放在WEB-INF目录下,在WEB-INF目录外通过index.jsp转发到login.jsp。
- 注意form中的action跳转地址,是我们的web应用下的
login.do
页面,这里在稍后介绍的struts-config.xml配置中会再说明。
3.编写ActionForm和Action
(1)首先需要编写ActionForm,即用户登录所用的表单,用于填充用户输入的数据。我们取名为UserForm,它继承自ActionForm类,如下:
public class UserForm extends ActionForm { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
其实这就是一个很简单的JavaBean,它和login.jsp中的表单对应,我们在这个UserForm中定义属性
username
和password
,并生成它们的setter
和getter
方法。
这里需要注意的是:<1>.一般的规范:定义属性名称的时候应该和jsp页面的控件名称一样。
<2>.但其实,属性的名称并非一定要一致,而真正要保持一致的是setter
和getter
方法。也就是说,如果你在jsp中定义的控件名称为username和password,那么setter
方法的名称一定是setUsername
和setPassword
,同理,getter
方法的名称一定是getUsername
和getPassword
。属性可以换其他的名字,但是这几个方法的名称一定要固定格式:get/set+控件名称并且首字母大写
<3>.但我们遵守一般的规范最好。
<4>.ActionForm一定要按照上述规范写好,才能保证数据能够正确填充,才能保证work(2)然后,编写Action,即登录的Action,我们取名为
LoginAction
,它必须继承自Action
类,如下:public class LoginAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 把form转成对应的UserForm对象 UserForm userForm = (UserForm)form; System.out.println("用户名="+userForm.getUsername()); System.out.println("密码="+userForm.getPassword()); // 简单验证 if("123".equals(userForm.getPassword())){ // 如果用户密码为123,则为合法 return mapping.findForward("ok"); }else{ return mapping.findForward("error"); } } }
在这个类中,我们需要重写一个方法:
excute
。这个方法会处理业务逻辑,会自动调用,它有点类似于Servlet中的service方法,或者doGet/doPost方法。4.配置struts-config.xml文件,这个文件一般放在/WEB-INF目录下,它配置Action、ActionForm以及它们的对应关系和跳转
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Structs Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <!-- 配置表单 --> <form-beans> <!-- name是表单名字,可以随意写,但是建议取名规范:表单类名小写 --> <!-- type用于指定表单类的全路径 --> <form-bean name="userForm" type="com.gavin.forms.UserForm"></form-bean> </form-beans> <!-- 配置Action --> <action-mappings> <!-- 配置一个具体的action --> <!-- path表示将来访问该action的资源名,http://localhost:8080/web/path --> <!-- name用于关联某个表单 --> <!-- type用于指定该Action类的全路径 --> <action path="/login" name="userForm" type="com.gavin.actions.LoginAction"> <!-- 这里配置跳转关系 --> <!-- name表示结果名称,path表示转发到的页面地址 --> <forward name="ok" path="/WEB-INF/welcome.jsp"/> <forward name="error" path="/WEB-INF/error.jsp"/> </action> </action-mappings> </struts-config>
(1)这个struts-config.xml引入了一个DTD文件:struts-config_1_3.dtd,这个文件可以在我们下载的jar包中找到,它定义了我们这个xml的约束,根元素为
struts-config
。
(2)该配置文件主要通过form-beans来配置ActionForm、通过action-mappings来配置Action。
(3)我们在form-beans下用form-bean来配置具体的ActionForm,比如当前文件配置了我们写的UserForm
(4)在action-mappings下用action来配置具体的Action,比如当前文件配置了我们写的LoginAction
(5)要注意这里action中的path参数配置,它就是我们的login.jsp中的表单action提交的地址,login.jsp中写的是login.do
,这个login.do
会交给struts的总控制器ActionServlet来处理,最后ActionServlet将通过一定的机制找到这里的path参数配置为/login
的action,再通过该action配置的type参数找到具体的类。从这个过程中我们可以发现,login.do在通过ActionServlet的处理后,最后找到的却是路径为
/login
的action,这似乎和.do
这个后缀没有什么关系,的确是这样的,这个后缀只是习惯上的用法,我们完全可以在web.xml文件中将这个后缀设置成其他任何的名字。
(6)最后要在具体的action下配置跳转关系。这里配置的参数和LoginAction中的excute
方法所写要对应起来。5.写出welcome.jsp和error.jsp页面
写出两个简单的界面即可。
6.在web.xml中配置ActionServlet
struts的总控制器ActionServlet本质上还是一个Servlet,所以我们要在web.xml中配置,配置如下:
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <!-- 指定配置文件struts-config.xml的路径 --> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
我们要在该配置中指定struts-config.xml文件的地址。同时可以看到,我们在这里配置的后缀为
*.do
,也就是说所有以.do
结尾的请求都要交给ActionServlet来处理。到这里,也就明白了为什么我们的login.jsp中写的提交地址为login.do
。4.总结
通过手工完成一个简单的struts项目,可以让我们对struts的工作流程和工作原理有更加深刻的认识。这个过程略微繁琐,后面会有工具直接生成,但是掌握底层原理是我们学习必不可少的一个步骤。
总结一下,其实struts是对我们通过JSP/Servlet和使用MVC模式开发项目的一个更高层次地提炼,它帮我们做了大部分工作,我们只需要按照struts框架提供的流程填充即可,简化了我们的开发的难度。
struts中的核心知识点:ActionServlet总控制器,Action分控制器,ActionForm表单,以及最重要的structs-config.xml和web.xml文件的配置。
-
Struts2进阶(一)运行原理及搭建步骤
2015-04-07 14:30:37考虑使用到SSH框架中的Struts2。本篇文章只为深入理解Struts2的工作流程,只有在深入理解了其工作流程后,才可以在利用框架编写时做到得心应手。以下是自己的理解及相关的学习知识。若文中技术描述有不当之处,敬请...Struts2进阶(一)运行原理
Struts2框架
Struts2框架搭建步骤
致力于web服务,不可避免的涉及到编程实现部分功能。考虑使用到SSH框架中的Struts2。本篇文章只为深入理解Struts2的工作流程,只有在深入理解了其工作流程后,才可以在利用框架编写时做到得心应手。以下是自己的理解及相关的学习知识。若文中技术描述有不当之处,敬请IT界的朋友给予宝贵建议,本人感激不已。
先了解一下Struts2框架的搭建步骤:
1.拷贝Struts2的jar包到项目中;
2.在web.xml中添加Struts2的过滤器;
3.配置Struts2的配置文件(在src目录中创建Struts.xml配置文件);
4.创建action(action就是一个POJO类);
5.在Struts.xml文件中配置action及返回结果集;
以上是搭建Struts2框架的基本步骤,至此,Struts2框架搭建完成。
以上只是简单的搭建起Strurs2框架,到这里你可能还是只会用,而且用的不是很好,为什么呢?究其原因,从事IT,我们就应该养成刨根问底的学习习惯,凡事多问个问什么。那么,为了熟练运用此框架,我们就应该首先了解Struts2的工作流程,然后再深入了解其底层方法的实现。
Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。
用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。
Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。下面我们先了解一下其工作流程。
首先我们应认识到:Struts2由过滤器(web.xml)启动
正是因为这一特性,
结合到具体的应用场景,请求响应步骤如下:
1:客户端在浏览器中输入一个url地址。
2:这个url请求通过http协议发送给tomcat。
3:tomcat根据url找到对应项目里面的web.xml文件。
4:在web.xml里面会发现有struts2的配置。
5:然后会找到struts2对应的struts.xml配置文件。
6:根据url解析struts.xml配置文件,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton。
7:Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
8:Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
9:返回HTTP响应到客户端浏览器。在步骤6中,涉及到的代码如下:
<span style="background-color: rgb(255, 255, 255);"><span style="color:#ff0000;"><?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 基于通配符的方式 --> <package name="user" namespace="/" extends="json-default"> <action name="user_*" method="{1}" class="com.msun.action.UserAction"> <result name="success" type="json"> </result> </action> </package> </struts></span><span style="color:#ff6666;"> </span></span>
参考网址
1.http://blog.csdn.net/g_beginner/article/details/6791106
2.http://yanguz123.iteye.com/blog/1697440
3.http://blog.csdn.net/wuwenxiang91322/article/details/11070513
4.http://www.ylzx8.cn/web/web/993988.html
eaF7VmUZf%2FK2SMMW3g0&oq=Struts2&rsv_sug2=1&rsp=1&inputT=7812&rsv_sug4=8644
美文美图
-
struts2.3.32升级到struts2.5.26
2020-12-09 16:21:54下载struts2.5.26jar包 官网下载 更新jar 新增或替换 commons-io-2.6.jar log4j-api-2.12.1.jar ognl-3.1.28.jar struts2-core-2.5.26.jar struts2-json-plugin-2.5.26.jar struts2-junit-plugin-2.5.26.jar struts2...下载struts2.5.26jar包
更新jar
新增或替换
asm-7.3.1.jar asm-analysis-7.3.1.jar asm-commons-7.3.1.jar asm-tree-7.3.1.jar commons-lang3-3.8.1.jar commons-io-2.6.jar commons-fileupload-1.4.jar javassist-3.20.0-GA.jar log4j-api-2.12.1.jar ognl-3.1.28.jar struts2-core-2.5.26.jar struts2-json-plugin-2.5.26.jar struts2-junit-plugin-2.5.26.jar struts2-spring-plugin-2.5.26.jar xpp3_min-1.1.4c.jar xstream-1.4.11.1.jar xmlpull-1.1.3.1.jar
删除
xwork-core-2.3.32.jar 2.5.X已把xwork-core整合到struts2-core,所以删除
修改web.xml
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter>
修改weblogic.xml(如果有)
新增session-descriptor
<weblogic-web-app> <session-descriptor> <cookie-name>JSESSIONID1</cookie-name> </session-descriptor> </weblogic-web-app>
修改struts.xml
2.1–》2.5
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
新增配置
- package标签添加strict-method-invocation="false"和下列标签。
- global-allowed-methods:放最下面,过滤自定义action的方法,不然不能访问
- 如果已经配置struts.properties,可不加constant标签
<constant name="struts.enable.DynamicMethodInvocation" value="true"/> <constant name="struts.enable.SlashesInActionNames" value="true"/> <constant name="struts.action.extension" value="do" /> <package extends="struts-default" strict-method-invocation="false"> <global-results> </global-results> <global-allowed-methods>regex:.*</global-allowed-methods> </package>
修改struts.xml的result-types配置
- 注释部分为struts2.3.32配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="struts-default" abstract="true" strict-method-invocation="false"> <result-types> <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> <!-- <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult"/> --> <result-type name="dispatcher" class="org.apache.struts2.result.ServletDispatcherResult" default="true"/> <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult" default="true"/> <!-- <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/> <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/> <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/> <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/> <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/> --> <result-type name="httpheader" class="org.apache.struts2.result.HttpHeaderResult"/> <result-type name="redirect" class="org.apache.struts2.result.ServletRedirectResult"/> <result-type name="redirectAction" class="org.apache.struts2.result.ServletActionRedirectResult"/> <result-type name="stream" class="org.apache.struts2.result.StreamResult"/> <result-type name="velocity" class="org.apache.struts2.result.VelocityResult"/> <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/> <!-- <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" /> <result-type name="postback" class="org.apache.struts2.dispatcher.PostbackResult" /> --> <result-type name="plainText" class="org.apache.struts2.result.PlainTextResult" /> <result-type name="postback" class="org.apache.struts2.result.PostbackResult" /> <!--自定义result-type--> <result-type name="json" class="org.apache.struts2.json.JSONResult"> <param name="root">jsonRoot</param> </result-type> </result-types> <interceptors> <interceptor name="i18n" class="org.apache.struts2.interceptor.I18nInterceptor"/> <!-- <interceptor name="i18n" class="com.opensymphony.xwork2.interceptor.I18nInterceptor"/> --> </interceptors> <!-- 其他配置不变,这里略 --> <default-class-ref class="com.opensymphony.xwork2.ActionSupport" /> <global-allowed-methods>regex:.*</global-allowed-methods> </package> </struts>
如果重写了ParametersInterceptor.java类
原方法
protected Map<String, Object> retrieveParameters(ActionContext ac) { return ac.getParameters(); }
新方法
protected Map<String, String[]> retrieveParameters(ActionContext ac) { HttpParameters httpParameters = ac.getParameters(); return httpParameters.toMap(); }
-
struts2 升级 struts-2.5.17
2018-08-29 16:57:45Struts2.3.35 http://mirrors.hust.edu.cn/apache/struts/2.3.35/struts-2.3.35-all.zip Struts2.5.17 http://mirrors.hust.edu.cn/apache/struts/2.5.17/struts-2.5.17-all.zip 以下记录一下SSH框架下升级...官方下载链接:
Struts2.3.35
http://mirrors.hust.edu.cn/apache/struts/2.3.35/struts-2.3.35-all.zipStruts2.5.17
http://mirrors.hust.edu.cn/apache/struts/2.5.17/struts-2.5.17-all.zip
以下记录一下SSH框架下升级Struts2 2.5.17版本:
1、建议先下载核心包,替换先核心包看是否可以正常运行,如果不行再查看缺失哪些包及配置
https://struts.apache.org/download.cgi#struts2517
2、替换项目中所有struts开头的jar包(一般替换所有版本较低的包,高版本一般不替换),
删除xwork-core-2.3.15.1.jar(在struts2.5.13版本中,这个包已经被整合,避免冲突删除旧包)
3、修改web.xml
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
修改成
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter4、如果存在jsp-jsonString保存需要修改文件jsonString.jsp相关文件
5、修改strut.xml文件
“-//Apache Software Foundation//DTD Struts Configuration 2.5//EN”
“http://struts.apache.org/dtds/struts-2.5.dtd”>6、2.5版本的404报错问题,需要在struts.xml配置
<!-- 配置2.5版本,struts.xml需要配置,需要放在package里面并且在第一个action配置的前面 --> <global-allowed-methods>regex:.*</global-allowed-methods>
7、其他异常: ERROR ParametersInterceptor Unexpected Exception caught setting ‘order’ on ‘class XXXX : Error setting expression ‘order’ with value [‘desc’, ]
当struts.devMode设置为true时,html表单数据中有和action属性匹配不上的参数名时就会被这样显示出来,没什么大碍,就是为了便于使用者调试。struts.devMode设置为false就没有了。
处理方法:参考https://blog.csdn.net/moonpure/article/details/51034656
以上完成升级,祝你成功! -
J2EE进阶(二)从零开始之Struts2
2016-07-05 10:19:08J2EE进阶(二)从零开始之Struts2 以前自己总是听说什么SSH框架,不明觉厉。现在自己要重整旗鼓,开始系统性的学习SSH框架了。首先开始Struts2的学习。其实自己之前参与过Struts2项目的开发。有关Struts2的运行原理,... -
struts1和struts2的区别
2019-04-18 10:49:02下面有关struts1和struts2的区别,描述错误的是? B A Struts1要求Action类继承一个抽象基类。Struts 2 Action类可以实现一个Action接口 B Struts1 Action对象为每一个请求产生一个实例。Struts2 Action是单例... -
Struts2-1.Struts2概述
2018-01-04 18:12:28Struts 2 是 Struts 的下一代产品,它是在 Struts 1 和 WebWork 技术的基础上进行了合并 全新的 Struts 2 与 Struts 1 差别巨大,但是相对于 WebWork,Struts 2 的变化很小。 Struts 2并不是一门完全独立的技术... -
Struts简介
2017-11-22 12:34:24一 Struts英文单词意思 支柱、支架,来源于建筑和旧式飞机使用的金属支架。 二 定义 Struts是流行和成熟的基于MVC设计模式的Web应用程序框架。 Struts在软件开发中,是一个非常优秀的框架。它先是Jakarta项目的... -
K8 Struts2 Exploit(Struts2综合漏洞利用工具)
2015-05-30 09:29:02K8 Struts2远程代码执行漏洞利用工具 (Apache Struts Remote Code Execution Exploit) Struts2漏洞检测工具 Struts2漏洞测试工具 K8 struts2 exploit Test Struts2 GetShell 目前已支持以下struts2漏洞编号 (S2-005 ... -
Struts1 和 Struts2
2013-03-15 20:46:06关于Struts2的出现缘由和好处就不多说啦,看了几篇总结的不错的文章,整理下贴出来,共同学习了。 Action的区别 对于有着丰富的Struts1.x开发经验的朋友来说,都十分的清楚Action是整个Struts框架的核心内容,当然... -
Struts2入门详解
2016-05-29 22:21:31如何搭建Struts2项目导入相关架包编写web.xml,配置strus2过滤器 <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class -
深入浅出Struts2
2015-10-17 12:12:18本课程主要讲授如何使用Struts2框架开发Web应用程序,其特色在于其讲解的过程中,通过当堂编写代码的讲授方式讲解“关键知识点”,这些“关键知识点”可保证学生从始至终都写出可运行的程序。 -
Struts2
2016-10-01 11:27:33Struts2是什么:struc2s 是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互,在 struts 1和WebWork的技术基础上进行了... -
struts2.3升级到struts2.5
2017-07-24 10:43:171、替换jar包 替换如下jar包 freemarker-2.3.23.jar ognl-3.1.12.jar ...struts2-json-plugin-2.5.10.1.jar struts2-spring-plugin-2.5.10.1.jar struts2-core-2.5.10.1.jar 删除:xwork-core-2.3. -
struts2.3.23升级到struts2.3.32
2017-03-10 14:43:29新的漏洞3月8号去审计厅培训系统的使用,那边计算机中心的负责人递过来一张如下图所示的文档,意思是发现了struts2的漏洞,需要进行修复。在培训前,我登录到服务器中,看到了项目中,所有的服务器中应用的都是... -
最新版本的Struts2+Spring4+Hibernate4框架整合
2014-10-15 14:39:34项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 二、 项目目的: 整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + ... -
Struts2概述及与Struts1的对比
2015-12-19 09:58:47Struts2 概述1,仍然是一个基于请求响应的MVC框架2,Struts2不是Struts1的升级3,Struts2与Struts1的体系结构差距非常大4,Struts2采用了另一个MVC框架WebWork的核心设计5,Struts2更优秀:松耦合设计。。 Struts1... -
struts2与struts1区别二
2017-08-02 15:40:36Struts2与Struts1的区别 Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。 简单来说二者的区别是:... -
Struts2-10.Struts2标签库
2018-01-05 13:52:1910.1什么是Struts2标签库 对于一个 MVC 框架来说,重点是实现两个部分,一个是控制器部分,一个是视图部分。 Struts 2 框架也把重点放在了这两部分上:控制器主要由 Action 来提供支持,而视图则是由大量的标签来... -
精通Java Web整合开发(JSP+AJAX+Struts+Hibernate)(第2版)
2012-11-29 14:55:20书籍目录: 《精通java web整合开发(jsp+ajax+struts+hibernate)(第2版)》 第1篇 基 础 篇 第1章 java web应用开发技术选用策略 第2章 开发运行环境的安装与配置 2.1 安装与配置jdk 1.65 2.2 安装web服务器tomcat ... -
SpringMVC与Struts2区别与比较总结
2015-03-23 21:45:431、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的... -
Struts 2.3.32升级到Struts2.3.35
2018-08-23 17:47:32北京时间8月22日13时,Apache官方发布通告公布了Struts2中一个远程代码执行漏洞(cve-2018-11776)。该漏洞可能在两种情况下被触发,第一,当没有为底层xml配置中定义的结果设置namespace 值,并且其上层动作集配置... -
struts2的核心和工作原理
2014-05-30 16:49:59在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计。在这儿MVC模式的好处就不在提了。 技术优势 Struts2... -
【Struts】:Struts1和Struts2的区别与联系
2016-04-30 19:46:02之前的两篇博文分别介绍了Struts1和Struts2这两个框架的概念和简单的使用流程,但是没有对这个两个框架之间的不同进行详细的说明,接下来就来看看两者到底有哪些不同的地方吧。 区别一:Struts1的Action类必须要... -
Struts1和Struts2对比
2015-03-20 16:12:49最近学习了Struts1和Struts2.很多人、很多资料都提到。Struts2不是从Struts1发展而来的。Struts2的前身是WebWork。那它俩到底有多大的不同呢,看了一些资料,下边就来比较比较。一、架构分析Struts1的架构图: 执行...
-
Java学习路线,好的学习路线和好的方法,能让我们少走些弯路
-
WHUT-逻辑与计算机设计第五个实验报告(第7-8次课).doc
-
(新)备战2021软考软件设计师顺利通关套餐
-
轻松带你掌握Scrapy框架(以爬取古诗文网为例)
-
基于underlay和overlay转换的四层负载均衡
-
C/C++编程全家桶(Daozy极限编程)
-
python实训
-
Linux文件的分割与合并
-
Java星选一卡通
-
【数据分析-随到随学】机器学习模型及应用
-
一种多趋势时间序列预测的神经网络模型
-
kibana-7.2.0-linux-x86_64.tar.gz.zip
-
【数据分析-随到随学】Tableau数据分 析+PowerBI
-
SCM631_EN_Additional_Topics_in_Warehouse_Management.pdf
-
kill -9 命令在分布式系统中的缺点
-
跟我练内测小分队学习礼包
-
【数据分析-随到随学】Hadoop数据分析
-
20200612-判断链表有环
-
FFmpeg4.3系列之26:视频监控之H265多路摄像头播控项目实战
-
转行做IT-第1章 计算机基础