Struts2

来源:互联网 发布:vb 颜色代码 编辑:程序博客网 时间:2024/04/28 08:36

  三大框架怎么能落下Struts2呢?Struts2明确了页面设计人员、程序设计人员以及架构设计人员之间的分工。

       它试图在不同的角度上提供网页设计人员、应用程序设计人员、架构设计人员解决方案,让不同技术的人员可以彼此合作又不互相干扰。从架构设计人员的角度来看,他只需做出一些配置与定义,定义后端bean与前端页面的关系。从网页设计人员的角度来看,Struts提供了一套像是新版本的HTML标签,但它不是静态的,而是动态的,可以与后端的动态程序结合,但网页设计人员不需要理会后端的动态部份。从应用程序设计人员的角度来看,它只需要按架构师设计人员的定义,完成后端bean的实现即可。3个角色的知识领域原则上可以互不干扰,根据您的角色,您只要了解其中一个知识领域,就可以运用Struts,其它角色的知识领域您可以不用了解太多细节。

 

        客户端提起一个HttpServletRequest请求,这个请求被提交到一些列的过滤器,由过滤器决定是否要调用某个action来处理这个请求,如果需要过滤器就会把这个请求提交给ActionProxy,ActionProxy通过struts.xml询问框架的配置文件,找到需要调用的Action类.ActionProxy创建一个ActionInvocation的实例,同时ActionInvocation通过代理模式调用Action。但在调用之前ActionInvocation会根据配置加载Action相关的所有Interceptor。

Struts2通过setter和getter的方式实现和页面的数据交换,客户输入的信息先是传给actionServlet,然后由struts的servlet引擎根据配置文件,调用相应的actionBean,再通过配置文件将返回值返回给前端。

Struts2的实现过程:

1、添加jar到lib

2.web.xml,配置struts引擎。

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher </filter-class></filter><filter-mapping><filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping> <display-name>Struts 2 Fileupload</display-name>     <filter>         <filter-name>struts-cleanup</filter-name>         <filter-class>             org.apache.struts2.dispatcher.ActionContextCleanUp        </filter-class>     </filter>         <filter-mapping>         <filter-name>struts-cleanup</filter-name>         <url-pattern>/*</url-pattern>     </filter-mapping>     <filter-mapping>         <filter-name>struts2</filter-name>         <url-pattern>/*</url-pattern>     </filter-mapping>     <welcome-file-list >         <welcome-file>index.html</welcome-file>     </welcome-file-list> </web-app>


3.添加struts.xml到src根目录,在struts.xml文件中添加一个actionbean

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"     "http://struts.apache.org/dtds/struts-2.0.dtd">  <struts> <!-- Struts 2的Action必须放在指定的包空间下定义 -->  <package  name="demo_struts2" extends="struts-default" >                <!-- 定义login的Action,该Action的实现类为demo.UserLoginAction类 -->          <action name ="fileUpload" class ="com.leec.demo_strus2.action.FileUploadAction">             <interceptor-ref name ="fileUploadStack">            <param name ="allowedTypes">                     image/bmp,image/png,image/gif,image/jpeg                </param >             </interceptor-ref>            <interceptor-ref name ="defaultStack"/>             <result name ="success"> /ShowUpload.jsp </result>            <result name ="input"> /FileUpload.jsp </result>         </action >                               <action name="UserLogin" class="com.leec.demo_strus2.action.UserAction" method="login" ><!-- 定义处理结果和资源之间映射关系。 --><result name="error">/error.jsp</result><result name="success">/query.jsp</result><result name="input">/index.jsp</result></action> <!-- 查询全部 -->  <action name="User_query" class="com.leec.demo_strus2.action.UserAction" method="query"><result name="success" >query.jsp</result></action><!-- 增 --><action name="User_regist" class="com.leec.demo_strus2.action.UserAction" method="regist"><!-- 定义处理结果和资源之间映射关系。 --><result name="error">/regist_error.jsp</result><result name="success">/query.jsp</result><result name="input">/add.jsp</result></action><!-- 删 --><action name="User_delete" class="com.leec.demo_strus2.action.UserAction" method="delete"><!-- 定义处理结果和资源之间映射关系。 --><result name="success">/query.jsp</result><result name="input">/query.jsp</result></action><!-- 改 --><action name="User_change" class="com.leec.demo_strus2.action.UserAction" method="change"><!-- 定义处理结果和资源之间映射关系。 --><result name="success">/query.jsp</result><result name="input">/change.jsp</result></action><action name="User_change1" class="com.leec.demo_strus2.action.UserAction" method="change1"><!-- 定义处理结果和资源之间映射关系。 --><result name="input">/change.jsp</result></action>    </package>  </struts>


 


 

 

原创粉丝点击