【struts基础】Struts2工作基本流程

     

          我们先看Struts2的一个简单例子,由于它是一个前端框架,所以我仅仅贴出了前端的代码和配置文件信息:

web.xml:

    

<?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">
	<!-- 配置Struts2的核心的过滤器 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>
   

  Struts.xml

<?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>
	<!-- 配置为开发模式 -->
    <constant name="struts.devMode" value="true" />
    <!-- 把扩展名配置为action -->
    <constant name="struts.action.extension" value="action" />
    <!-- 把主题配置为simple -->
    <constant name="struts.ui.theme" value="simple" />

    <package name="default" namespace="/" extends="struts-default">
      
		<!-- 当Struts2与Spring整合后,class属性可以写bean的名称 -->
		<action name="test" class="testAction">
			<result name="success">/test.jsp</result>
		</action>
    </package>

</struts>

Action.java

@SuppressWarnings("serial")
@Controller
@Scope("prototype")
public class TestAction extends ActionSupport{
  public String test() throws Exception
  {
	  return "success";
  }
}

    web.xml的主要作用是配置struts2的核心过滤器,当我们在网页中输入一个地址http://localhost:8080/test/test.action的时候,该过滤器根据其后缀.action为来判断其框架是否为struts2.假如是,那么就开始根据框架的处理流程来处理。

    struts.xml是struts2的核心配置文件,当我们的action名称为struts的时候,会报错,毕竟这是一个关键字。起名字的时候上心点。

    当该请求要交给struts2框架来处理的时候,我们会根据.action前面的内容,比如test.action来决定调用那个业务。为TestClass的test方法。来实现调用。当处理结束后,返回一个值,例子中返回了index,这时候核心配置文件struts.xml又起到了映射作用,根据返回的值来确定跳转到那个页面。

    struts2中提供了很多的拦截器,用来将httpservletrequest请求中的请求参数解析出来,传入到用户制定的action中,我们定义的action类不是业务控制层,而是action代理。


    所以,工作流程比较简单:过滤器(web.xml)->struts.xml->Action.java->jsp



    


 

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值