struts2入门学习

本文介绍Struts2环境搭建步骤,包括导入依赖库、配置web.xml及struts.xml文件等,并提供三种Action编写方式及请求流程解析。

一 下载struts环境,解压后打开看到app,docs,lib,src

app:struts2-blank是空的struts配置环境可以直接导入使用

src:struts源代码

二搭建环境,最方便的做法就是直接导入struts2-blank,或者

1.先导入jar包

必选

上传文件

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

模板语言

freemarker-2.3.16.jar

分析、编辑和创建Java字节码的类库

javassist-3.7.ga.jar

核心库

ognl-3.0.jar

xwork-core-2.2.1.1.jar(webwork的core)

struts2-core-2.2.1.1.jar

可选

使用Struts sx标签

struts2-dojo-plugin-2.1.8.jar

数据校验

commons-validator-1.3.1.jar

与Spring整合

struts2-spring-plugin-2.2.1.1.jar


2.配置web.xml配置filter(和struts1配置actionServlet不同,struts2是基于filter的)

<filter> <filter-name>struts2_00</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2_00</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

3拷贝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> </struts>
4.启动项目正常启动则ok

三 小例子

第一种方式

1编写action(与struts1不同,这里是多例。在编写struts1的Action的时候务必要小心线程安全问题 , 而struts2中该问题不复存在)

public class HelloWorldAction { public String helloWorld2(){ return "success"; } }
2在struts.xml中配置

<package name="" namespace = "/" extends="struts-default"> <!-- 服务器启动时就会加载该配置文件 --> <action name="helloWorld" class="com.pk.web.action.HelloWorldAction" method="helloWorld"> <result name="success" type="dispatcher">/index.jsp</result> </action>第二种方式

action实现Action(下面是他的代码)起到代码规范

public interface Action { public static final String SUCESS= "success"; public static final String NONE = "none"; public static final String ERROR = "error"; public static final String INPUT = "input"; public static final String LOGIN = "login"; public String execute() throws Exception; } 其中INPUT表示数据格式错误

LOGIN:表示验证登陆

第三种方式

action继承ActionSupport

ActionSupport类实现了Action,Validateable,ValidationAware, TextProvider, LocaleProvider, Serializable接口,同时提供了国际化和校验的方法,这样可以大大简化Action的编写,在工作中,通常采用这种方式完成Action的定义。

四 请求流程解释

1.首先启动服务器,启动后查看console是否报错。

首先加载web.xml,其中加载filter等待拦截请求

2发送请求

访问方式一action = "register!register.action" register指的是action的名字,“!”后跟方法名字。 表示调用action名为register所表示类的register方法

访问方式二action ="register"若不指定就会调用method指定的方法,默认为execute。表示执行这个action调用method指定方法

3.过滤器拦截请求路径(namespace+actionname+struts.action.extension)其中会找struts.action.extension

找的顺序如下:

1.struts2-core-2.2.1.1.jar/struts-default.xml(最最低)

2.struts2-core-2.2.1.1.jar/org/apache/struts2/default.properties(最低)

3.%class_path%/struts.xml(低)(推荐)

4.%class_path%/struts.properties

5.web.xml(高)


找到对应的action后就会执行extend=“”中的代码一般为struts-default(bean+abstract包(

返回类型、拦截器、拦截器栈、默认的拦截器和默认的Action))依次执行(若有自定义的也执行)。

4.执行action中的方法并返回String常量然后再执行extend中(若有自定义的也执行)一系列的连接器由返回类型中的一个类进行跳转



五认识struts的配置文件

暂停吃饭去



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值