struts2之一
在javaweb平台上 struts是有着很强大功能的框架,从struts1.x到struts2.x不断更新....
本人今天学习了struts2框架,用的是struts-2.3.1.2-all这个版本
学习struts之前先简单说说servlet (就是一个处理请求的类) 大家知道jsp的请求可以提交给一个servlet,然后由servlet进行一系列的转换再返回给某个对象,但是servlet中的变量一般都要放在方法里面(为局部变量),servlet中的成员变量为每次请求所共有,所以每次请求都要写一个单独servlet,非常繁琐。struts框架就是在servlet的基础上加以改进,通过各种配置来控制程序的运行....废话就说这么多...
例子开始:
第一步:建web项目
用myeclipse新建一个web项目struts2test (和平时建立web项目一样)
第二步:导入jar包
解压你所下载的struts2压缩包,在文件夹lib中找到这么几个jar文件拷贝到web项目中的lib文件夹下:
然后再在web.xml文件中配置如下过滤器:
<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>
</web-app>
第三步:在src目录下新建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>
<package name="struts2" extends="struts-default"><!-- name="struts" 随便起名字和项目名字没关系—>
</package>
</struts>
第四部:将项目部署到tomcat6容器上,并启动tomcat6 !成功配置struts2框架
下面写个简单的程序来测试struts框架:
第一步:
在src目录下建一个包: com.test.action
bean这个包中建立一个类Action1并让他继承自com.opensymphony.xwork2.ActionSupport类
内容如下:
public class Action1 extends ActionSupport {
private String username;
private String password;
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;
}
public String execute() throws Exception {
return SUCCESS;
}
第二步:建立jsp页面first.jsp:
<body>
<form action="action1.action">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="submit">
</form>
</body>
第三步:在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>
<package name="struts2" extends="struts-default"><!-- name="struts" 随便起名字和项目名字没关系—>
<action name="action1" class="com.test.action.Action1">
<result name="success">/success.jsp</result>
</package>
</struts>
第四部:编写success.jsp页面
<body>
username: ${requestScope.username }<br>
password: ${requestScope.password }
</body>
最后启动tomact 在浏览器中请求第一个first.jsp
输入用户名和密码
点击确定后,该jsp页面请求的对象为action1.action 流程就会转到struts.xml中映射到action1真正对应的Action1这个类
然后在Action1类中自动调用setUsername(String username) 和setPassword(String password)方法
并将结果放到request作用域范围内,最后程序自动调用(自动调用是通过动态代理实现,改天单独介绍....)Action1类中public String execute()返回SUCCESS 方法然后再进入到struts.xml中的这句<result name="success">/success.jsp</result>流程转换到success.jsp页面。ok!!!
以上内容存在很多细节问题,sturts的其它用法(如校验等等)请见下回分析....