Struts2架构思想、配置文件
2016-05-02 23:01
351 查看
struts的核心在于拦截器的机制,采用拦截器来处理业务逻辑,使得侵入性比较厉害的servlet光芒暗淡。我们来看看struts2的核心思想图解
show my code.
先来第一个.action,为了能让我们知道action确实执行了我们选择了在控制台打印一句hehe。这里作为我们struts2的业务逻辑处理模块,我们还需要为它配置struts.xml(自定义的配置文件)
来看看配置文件
配置到这是不是认为已经大功告成了呢?运行一下看看控制台,什么也没有,明显不科学嘛。我们需要了解,任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。 通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载Struts2框架。
因为Struts2将核心控制器设计成Filter,而不是一个普通Servlet。故为了让Web应用加载FilterDispatcher,只需要在web.xml文件中配置FilterDispatcher即可。 所以我们再来配置一下web.xml.
到此为止,我们大功告成!
show my code.
先来第一个.action,为了能让我们知道action确实执行了我们选择了在控制台打印一句hehe。这里作为我们struts2的业务逻辑处理模块,我们还需要为它配置struts.xml(自定义的配置文件)
package cn.canyugan.action; public class HelloAction { public String execute() { System.out.println("hehe"); return "success"; } }
来看看配置文件
<?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> <!-- name:给包起名防重名 namespace:给包增加一层或多层目录 extends: 继承一个其他包,目的是引入其他包的配置 abstract: 声明包是抽象的.意思就是让别的包来继承,声明为抽象的包中不能含有Action配置 --> <!-- 常量包 --> <package name="hello" namespace="/caorui" extends="struts-default" abstract="true/false"> <!-- name:为action类加上标识 访问时输入name就可以找到action class:action完整类名 method:处理的方法 --> <action name="HelloAction" class="cn.canyugan.action.HelloAction" method="execute"> <!-- name:返回结果的标识 找到结果路径 type:可以决定跳转到结果的方式 转发,重定向 --> <result name="success" type="dispatcher">/index.jsp</result> </action> </package> </struts>
配置到这是不是认为已经大功告成了呢?运行一下看看控制台,什么也没有,明显不科学嘛。我们需要了解,任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。 通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载Struts2框架。
因为Struts2将核心控制器设计成Filter,而不是一个普通Servlet。故为了让Web应用加载FilterDispatcher,只需要在web.xml文件中配置FilterDispatcher即可。 所以我们再来配置一下web.xml.
<!-- 重要: 配置struts2的核心过滤器 --> <!-- 注意: 配置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>
到此为止,我们大功告成!
相关文章推荐
- java的Scanner,char等基础知识!
- Java8新特性Stream API与Lambda表达式详解(2)
- java设计模式(工厂模式)
- freemarker 用template快速构造XML
- JAVA语言之基数排序
- String abc=null;String abc="";String abc;三种写法有什么区别?
- 【GOF23设计模式】_工厂模式JAVA229-231
- Windows10 SpringMVC中需要使用setPath()才能保证cookie保存成功
- Spring3.1集成Quartz,让你的任务执行随心所欲
- Java线程池——FutureTask
- struts2入门到精通教程
- 适配器模式
- Java之Volatile关键字使用
- JSON格式数据解析(Java版)
- java连接mysql时用到的参数
- Java学习(十)
- SpringData 学习(7)—— 学习 Repository 接口的第 2 个子接口 PagingAndSortingRepository
- java利用classloader实现热部署
- java发送邮件
- Springboot+Maven多模块开发 (一)初始化工程(新建第一个web工程)