[align=center][size=large]Struts2笔记之第一讲[/size][/align]
前言:学技术以来,已经三年了,感觉struts2好多知识点变成了模棱两可,为了净化自己的内心,使自己在知识领域有所建树,我要学会专研,下面就从struts2基础开始学起,也希望读者朋友们和我共进步。
一、struts2环境搭建:
需要注意sturs2需要运行在jre1.5及以上版本
二、第一个例子--登陆
1、创建java web项目
2、引入sturts2的依赖包,将依赖包拷贝到WEB-INFO/lib下
*commons-logging-1.0.4.jar
*freemarker-2.3.15.jar
*ognl-2.7.3.jar
*struts2-core-2.1.6.1.jar
*xwork(拦截器机制)-core-2.1.6.jar
*commons-fileupload-1.2.1.jar
3、在web.xml配置文件中,配置StrutsPrepareAndExecuyteFilter或FileterDispatcher(完成页面流转的配置)
4、提供struts2配置文件struts.xml,放到src下
5、LoginAction.java文件
6、建立jsp(login.jsp login_success.jsp、login_error.jsp)
login.jsp核心代码(把代码拷贝到body下面即可)
login_success.jsp核心代码 (把代码拷贝到body下面即可)
login_error.jsp核心代码 把代码拷贝到body下面即可)
登陆失败
三、struts2小特性
7、创建struts2的Action,struts2的 action可以不用继承struts2框架中的任何类,也不用实现struts2框架中的任何接口,所以struts2的Action可以是一个POJO(纯粹的java对象)
所以Struts2的Action测试更容易。
struts2缺省方法名称:public String execute() throws Exception;
8、在Action中提供getter和setter 方法,便于收集数据(这样收集数据的模式一般可以称为属性驱动模式)
9、struts2流程描述:一个请求过来要到达filter(名称:strutsPrepareAndExecuteFilter struts准备和执行的一个filter),这个filter会在里面判断你是不是一个action,不是action直接出去dofilter,是action
创建代理,然后在代理里执行一系列拦截器,(细点说然后在创建actioninvocation) 拦截器执行完调用action,action调用完之后根据转向信息,生成一个result对象,然后调用result对象的execute方法
转到视图,视图完了之后 拦截器出栈,然后response给浏览器
10、struts2与struts1最大的区别
最重要的对比 strust2是多例的,struts1单例的
前言:学技术以来,已经三年了,感觉struts2好多知识点变成了模棱两可,为了净化自己的内心,使自己在知识领域有所建树,我要学会专研,下面就从struts2基础开始学起,也希望读者朋友们和我共进步。
一、struts2环境搭建:
需要注意sturs2需要运行在jre1.5及以上版本
二、第一个例子--登陆
1、创建java web项目
2、引入sturts2的依赖包,将依赖包拷贝到WEB-INFO/lib下
*commons-logging-1.0.4.jar
*freemarker-2.3.15.jar
*ognl-2.7.3.jar
*struts2-core-2.1.6.1.jar
*xwork(拦截器机制)-core-2.1.6.jar
*commons-fileupload-1.2.1.jar
3、在web.xml配置文件中,配置StrutsPrepareAndExecuyteFilter或FileterDispatcher(完成页面流转的配置)
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuyteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
4、提供struts2配置文件struts.xml,放到src下
<?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-defaluts包,这样就拥有基本的功能 -->
<package name="struts2" extends="struts-default">
<action name="login" class="com.struts2.LoginAction">
<result name="success">/login_success.jsp</result>
<result name="error">/login_error.jsp</result>
</action>
</package>
</struts>
5、LoginAction.java文件
package com.struts2;
public class LoginAction {
private String username;
private String password;
/**
* struts2 默认调用这个方法,返回字符串
* @return
* @throws Exception
*/
public String execute() throws Exception{
if("admin".equals(username) && "admin".equals(password)){
return "success";
}else{
return "error";
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
6、建立jsp(login.jsp login_success.jsp、login_error.jsp)
login.jsp核心代码(把代码拷贝到body下面即可)
<form action="login.action">
用户:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="submit" value="登陆">
</form>
login_success.jsp核心代码 (把代码拷贝到body下面即可)
${username},登陆成功
login_error.jsp核心代码 把代码拷贝到body下面即可)
登陆失败
三、struts2小特性
7、创建struts2的Action,struts2的 action可以不用继承struts2框架中的任何类,也不用实现struts2框架中的任何接口,所以struts2的Action可以是一个POJO(纯粹的java对象)
所以Struts2的Action测试更容易。
struts2缺省方法名称:public String execute() throws Exception;
8、在Action中提供getter和setter 方法,便于收集数据(这样收集数据的模式一般可以称为属性驱动模式)
9、struts2流程描述:一个请求过来要到达filter(名称:strutsPrepareAndExecuteFilter struts准备和执行的一个filter),这个filter会在里面判断你是不是一个action,不是action直接出去dofilter,是action
创建代理,然后在代理里执行一系列拦截器,(细点说然后在创建actioninvocation) 拦截器执行完调用action,action调用完之后根据转向信息,生成一个result对象,然后调用result对象的execute方法
转到视图,视图完了之后 拦截器出栈,然后response给浏览器
10、struts2与struts1最大的区别
最重要的对比 strust2是多例的,struts1单例的