Struts2简介第一个Struts2Demo(一)
来源:互联网 发布:php制作动态网页作品 编辑:程序博客网 时间:2024/06/06 01:03
struts是Servlet封装,目的是为了提高开发效率
1. Struts开发步骤
1、 web项目引入Struts-jar包(核心包有8个fileupload/io/lang3/freemarker/javassist/ognl/struts2-core/xwork-core)
2、 web.xml中,引入Struts的核心功能,配置过滤器
3、 开发action
4、 配置action,在src/struts.xml中配置(struts.xml可以在Struts源码中找到)
Demo HelloStruts
引jar包,在web.xml中配置Struts2核心过滤器
web.xml
<!-- 引入Struts核心过滤器 --> <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>
action开发,用一个普通类继承ActionSupport
/** * 开发Action 处理请求 * @author wsk * */public class HelloAction extends ActionSupport{ public HelloAction(){ System.out.println("创建HelloAction"); } public String execute() throws Exception { System.out.println("访问到了HelloAction。。正在处理请求"); System.out.println("调用Servlet"); return "success"; }}
配置文件struts.xml
<!-- package 包配置:通常一个业务模板用一个包 name 包的名字,包名不能重复 extends 当前包继承自哪个包 在Struts中所有包一定要继承struts-default struts-default在struts-default.xml中 abstract 表示当前包为一个抽象包,抽象包中action不能被访问 namespace 名称空间,默认为/,作为路径的一部分 访问路径=http://localhost:8088/项目/名称空间/actionname action 配置请求路径与Action类的映射关系 name 请求路径名称 class 请求处理的action类全名 method 请求处理的方法 result name action处理方法返回值 type 跳转结果类型 --!> <package name="xxs" extends="struts-default"> <!-- 第一个helloworld action --> <action name="hello" class="com.wsk.hello_struts.HelloAction" method="execute"> <result name="success">/hello.jsp</result> </action> </package>
2. Struts2执行流程
服务器启动时:
1、加载项目web.xml
2、创建Struts2核心过滤器对象,StrutsPrepareAndExecuteFilter,并执行filter的init方法,加载相关配置文件。
struts-default.xml 核心功能的初始化
struts-plugin.xml Struts相关插件
struts.xml 用户编写配置文件
访问
3、用户访问Action,服务器根据访问路径名称,找对应的action配置,创建Action对象
4、后边每次访问都会创建Action实例
Struts-default.xml
内容:
1、bean节点指定Struts在运行的时候创建的对象类型
2、指定struts-default包 【用户写的package(struts.xml)一样要继承此包 】
package struts-default 包中定义了:
a. 跳转的结果类型
dispatcher 转发,不指定默认为转发redirect 重定向redirectAction 重定向到action资源stream (文件下载的时候用)
b. 定义了所有的拦截器
定义了32个拦截器!
为了拦截器引用方便,可以通过定义栈的方式引用拦截器,此时如果引用了栈,栈中的拦截器都会被引用!
defaultStack 默认的栈,其中定义默认要执行的18个拦截器!
c. 默认执行的拦截器栈、默认执行的action
<default-interceptor-ref name="defaultStack"/> <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
拦截器和过滤器区别
拦截类型区别
拦截器是Struts2里边的,主要用于拦截Action资源的访问,只能在Struts中使用
过滤器是servlet中,可以拦截(.jsp/servlet/css/js/img)
创建执行时间区别
拦截器是在web服务器启动时创建过Struts核心滤器初始化时加载,在用户访问Action时调用
过滤器是web服务器启动时创建执行初始化方法init,在用户访问时调用doFilter方法执行,在web服务器关闭时销毁
- Struts2简介第一个Struts2Demo(一)
- struts2Demo
- 一、第一个Struts2例子(Helloword)
- 实现第一个Struts2应用程序(一)
- struts2 学习笔记一 第一个struts2程序
- Struts2学习篇(一) 第一个Struts2程序
- struts2(一)---编写第一个struts2项目
- struts2学习一:搭建第一个struts2.5项目
- 第一个Struts2程序,弄了一下午
- Struts2学习(一)——第一个项目
- 第一个struts2程序
- 第一个struts2应用程序
- 第一个struts2程序
- struts2第一个程序
- 搭建第一个struts2
- 第一个struts2示例
- 第一个struts2实例
- struts2 第一个程序
- 使用Java方式ftp下载
- CSUOJ-1044: 扑克排序
- redis ssm遇到的小问题2
- 欢迎使用CSDN-markdown编辑器
- javascript-小数四舍五入
- Struts2简介第一个Struts2Demo(一)
- itchat 微信接口不能直接发消息给指定用户
- C语言-数据结构-链栈
- Java集合迭代器 Iterator
- 清澄A1223. 画圈圈(范浩强)
- Linux下安装、配置Apache服务器
- spring boot demo 通过maven构建
- 做个行动派----写给未来三年的自己
- 《凯恩斯革命的前世今生》导语集(前三章)