struts 订阅
Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。 展开全文
Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
信息
使用人员
JavaWeb网站开发人员
外文名
Struts
平    台
Java
中文名
struts
实    质
基于MVC的WEB框架
struts结构
在Struts中,已经由一个名为ActionServlet的Servlet充当控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在MVC的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应Struts里的ActionForm与Action两个需要继承实现超类。在这里,Struts可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB),JDBC与JNDI。在Struts的视图(View)端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如Velocity Templates,XSLT等。通过应用Struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。 [1] 
收起全文
精华内容
参与话题
问答
  • Struts2视频_全面开战

    万人学习 2015-05-12 16:23:30
    本Java视频教程对 Struts2 庞杂的技术点进行抽丝剥茧,提炼出企业开发的核心技术和重要技能。每个技术点都配备案例和代码,对于拦截器、Struts2 运行流程分析、值栈等技术点的讲授更是深入解析源代码,授之以渔。
  • struts2必备jar包官方绿色版

    万次下载 热门讨论 2012-10-08 18:02:42
    struts2最新官网的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:33
    logging-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:43
    Struts1是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中定义属性usernamepassword,并生成它们的settergetter方法。
    这里需要注意的是:

    <1>.一般的规范:定义属性名称的时候应该和jsp页面的控件名称一样。
    <2>.但其实,属性的名称并非一定要一致,而真正要保持一致的是settergetter方法。也就是说,如果你在jsp中定义的控件名称为username和password,那么setter方法的名称一定是setUsernamesetPassword,同理,getter方法的名称一定是getUsernamegetPassword。属性可以换其他的名字,但是这几个方法的名称一定要固定格式: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

    5.https://www.baidu.com/s?wd=struts2原理&rsv_spt=1&issp=1&f=3&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=10018801_hao&rsv_enter=1

    &rsv_sug3=8&rsv_sug1=5&rsv_pq=d990692c0006e058&rsv_t=07157W%2FFYoI9EpU%2FK6JnO6yL1qQyltzq0x5F2NtIWnlIvOjA7

    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:45
    Struts2.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.zip

    Struts2.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.StrutsPrepareAndExecuteFilter

    4、如果存在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:08
    J2EE进阶(二)从零开始之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:28
    Struts 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:02
    K8 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:33
    Struts2是什么:struc2s 是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互,在 struts 1和WebWork的技术基础上进行了...
  • struts2.3升级到struts2.5

    千次阅读 2017-07-24 10:43:17
    1、替换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:47
    Struts2 概述1,仍然是一个基于请求响应的MVC框架2,Struts2不是Struts1的升级3,Struts2与Struts1的体系结构差距非常大4,Struts2采用了另一个MVC框架WebWork的核心设计5,Struts2更优秀:松耦合设计。。 Struts1...
  • struts2与struts1区别二

    千次阅读 2017-08-02 15:40:36
    Struts2与Struts1的区别  Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。 简单来说二者的区别是:...
  • Struts2-10.Struts2标签库

    万次阅读 2018-01-05 13:52:19
    10.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:43
    1、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...
  • 之前的两篇博文分别介绍了Struts1和Struts2这两个框架的概念和简单的使用流程,但是没有对这个两个框架之间的不同进行详细的说明,接下来就来看看两者到底有哪些不同的地方吧。  区别一:Struts1的Action类必须要...
  • Struts1和Struts2对比

    千次阅读 2015-03-20 16:12:49
    最近学习了Struts1和Struts2.很多人、很多资料都提到。Struts2不是从Struts1发展而来的。Struts2的前身是WebWork。那它俩到底有多大的不同呢,看了一些资料,下边就来比较比较。一、架构分析Struts1的架构图: 执行...

空空如也

1 2 3 4 5 ... 20
收藏数 196,027
精华内容 78,410
关键字:

struts