环境说明
开发工具:Myeclipse 10
服务器:tomcat6.x
系统:win8
需求描述
开发三个jsp页面,分别显示:登录页面、登录成功页面、登录失败页面。
开发一个Action类,响应登录请求。
开发步骤
1、新建一个web project
2、加入Struts2五个jar包:
commons-fileupload-1.2.1.jar
freemarker-2.3.15.jar
ognl-2.7.3.jar
struts2-core-2.1.8.jar
xwork-core-2.1.6.jar
3、配置web.xml
4、编写login.jsp
5、编写LoginAction类
6、编写struts.xml文件
7、编写welcome.jsp、error.jsp
工程文件结构
开发细节
struts2使用的jar包,可以访问我的主页进行下载。
配置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>
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="login">
用户名:<input name="username" type="text"/>
<br>
密码:<input name="password" type="text"/>
<br>
<input type="submit" value="登录">
</form>
</body>
</html>
LoginAction.java
package married.li.chen.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String username;//登录名
private String password;//密码
public String getUsername(){
return this.username;
}
public void setUsername(String username){
this.username = username;
}
public String getPassword(){
return this.password;
}
public void setPassword(String password){
this.password = password;
}
public String execute() throws Exception{//自动执行的方法
if("BruceLee".equals(getUsername())&&"123".endsWith(getPassword())){
ActionContext.getContext().getSession().put("user", getUsername());//传给welcome.jsp
return SUCCESS;
}else{
return ERROR;
}
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true" />
<package name="a" extends="struts-default">
<action name="login" class="married.li.chen.action.LoginAction">
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcom.jsp</result>
</action>
</package>
</struts>
welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>welcome</title>
</head>
<body>
<p>${sessionScope.user },你已经登录!</p>
</body>
</html>
error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>error</title>
</head>
<body>
<p>用户名或密码有误,请重新<a href="login.jsp">登录</a></p>
</body>
</html>
注:本实例出自李刚的《轻量级JavaEE企业应用实战》第三版