软件152 王程燕
1.Struts
新建web project,解压刚下载的struts包并将下面九个包放到lib目录下(保险的办法的把所有jar包全放过去,必须用到的是下面的几个,比较多的说法是引五个核心包,但只有那五个是不够的):
commons-fileupload-1.2.2.jar(文件上传);
commons-io-2.0.1.jar(输入输出流组建);
commons-lang-2.5.jar(工具类);
commons-logging-1.1.1.jar(日志包);
freemarker-2.3.16.jar(UI标签模板);
javassist-3.11.0.GA.jar(分析、编辑和创建Java字节码的类库);
ognl-3.0.1.jar(语言包);
struts2-core-2.2.3.1.jar(核心类库);
xwork-core-2.2.3.1.jar(Xwork类库)。
下面进行FilterDispatcher的配置:
打开WebRoot/WEB-INF/web.xml文件,加入如下代码:
2
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
6 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
7
8
9
10
11 struts2
12 org.apache.struts2.dispatcher.FilterDispatcher
13
14
15 struts2
16 *.action
17 *.jsp
18
19
20
21
22 login.jsp
23
24
这里FilterDispatcher用来初始化struts2,并且处理以.action和.jsp结尾的web请求。
在WebRoot下新建一个login.jsp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
在src中新建LoginAction类,处理登录请求:
package action;
2 import com.opensymphony.xwork2.ActionSupport;
3
4 @SuppressWarnings("serial")
5 public class LoginAction extends ActionSupport {
6 private String username =null;
7 private String password =null;
8 @Override
9 public String execute() throws Exception {
10 // TODO Auto-generated method stub
11 if(username.equals("admin") && password.equals("888888")){
12 return SUCCESS;//Action类中的常量,值为字符串success
13 }
14 return LOGIN;//Action类中的常量,值为字符串login
15 }
16 public String getUsername() {
17 return username;
18 }
19 publicvoid setUsername(String username) {
20 this.username = username;
21 }
22 public String getPassword() {
23 return password;
24 }
25 public void setPassword(String password) {
26 this.password = password;
27 }
28 }
下面编写登陆成功后的页面,在WebRoot下新建success.jsp:
1
2
3
4
5
6
7
8
欢迎回来
9
10
之后在src目录下建struts.xml,用来配置上面Action的信息:
1 <?xml version="1.0" encoding="UTF-8"?>
2 /p>
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.3.dtd">
5
6
7
8 /login.jsp
9
10
11 /success.jsp
12
13
14
此时运行程序,打开浏览器预览,可以看到登陆界面,输入admin/888888,即可转到登陆成功的界面。
这里解释一下struts.xml中的配置:
package是一个类似对象的组件,name属性指定一个名字,便于被其他package引用;extends属性(可选)是说从继承哪个package的行为,struts-default.xml许多包里都有定义,这里的是源自struts2-core-2.2.3.1.jar;所有的result、action必须配置到package中。
global-results指定所有的全局result,当返回结果为String类型的login(name属性的值)时,进入login.jsp页面。
action指定一个类,当action.LoginAction(调用覆写的execute方法)返回字符串success时,即转到success.jsp页面。