Strut2入门级小程序---流程记录
1、导jar包
现阶段一共13个基本jar包,都干什么用随后看(中间用到了BeanUtils的工具所以也要导commons-beanutils-1.8.3.jar和commons-logging-1.1.1.jar两个包)
分别是:
2、创建需要的界面(此处我是一个登录小程序,所以从login.jsp转到success.jsp界面),所以我创建了login.jsp和success.jsp界面如下:
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>登陆界面</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/login" method="post">
<table width="1000px" align="center" >
<tr>
<td colspan="2" align="center" ><h2>欢迎登陆</h2></td>
</tr>
<tr>
<td width="40%" align="right" >姓名</td>
<td width="60%" align="left">
<input type="text" name="username">
</td>
<tr>
<td width="40%" align="right" >密码</td>
<td width="60%" align="left">
<input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="2" align="center" ><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>${user.username }欢迎你。。。</h1>
</body>
</html>
3、对Struts2框架进行配置
(1)对web.xml配置过滤器
<filter>
<filter-name>hello</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hello</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
(2)新建struts.xml文件并进行配置
说明:文件名称只能是struts.xml(不是的话要再web.xml中配置,默认是struts.xml),放在Tomcat的\WEB-INF\classes目录下,因为我用的是Myeclipse,所以直接放在src下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="homework_01" namespace="/" extends="struts-default">
<action name="login" class="cn.zg0086.homework.LoginStruts2" method="read" >
<result name="good" type="redirect">/success.jsp</result>
<result name="bad">/login.jsp</result>
</action>
</package>
</struts>
4、创建LoginStruts2.java,实现ServletRequestAware接口
package cn.zg0086.homework;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts2.interceptor.ServletRequestAware;
import cn.zg0086.homework.bean.Homework;
public class LoginStruts2 implements ServletRequestAware {
HttpServletRequest request;
public String read() {
// 建一个List集合当数据库查询
List<Homework> list = new ArrayList<Homework>();
list.add(new Homework("张三丰", "123"));
list.add(new Homework("周芷若", "321"));
list.add(new Homework("周杰伦", "456"));
list.add(new Homework("苍老师", "111"));
Homework work = new Homework();
try {
BeanUtils.populate(work, request.getParameterMap());
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
boolean flag = list.contains(work);
if (list.contains(work)) {
request.getSession().setAttribute("user", work);
return "good";
}
return "bad";
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
}
5、写链接,测试
对了,还建了一个Homework的javabean
package cn.zg0086.homework.bean;
public class Homework {
private String username;
private String password;
public Homework(String username, String password) {
super();
this.username = username;
this.password = password;
}
public Homework() {
super();
// TODO Auto-generated constructor stub
}
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;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((password == null) ? 0 : password.hashCode());
result = prime * result + ((username == null) ? 0 : username.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Homework other = (Homework) obj;
if (password == null) {
if (other.password != null)
return false;
} else if (!password.equals(other.password))
return false;
if (username == null) {
if (other.username != null)
return false;
} else if (!username.equals(other.username))
return false;
return true;
}
@Override
public String toString() {
return "Homework [username=" + username + ", password=" + password + "]";
}
}
总结:
1、导jar包
2、创建需要的界面
3、对Struts2框架进行配置
4、创建LoginStruts2.java,实现ServletRequestAware接口
5、写链接,测试
注意:
使用List<T>.contains(T t)的时候,T类中要重写equals()方法,这属于只是遗忘,需要常回忆知识点