Struts2

  三大框架怎么能落下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>


 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值