struts2之用户注册案例

 

博文《struts2之使用Filter作为控制器的MVC》中使用Filter实现了用户注册案例,在此使用struts2改写,以此作为学习struts2的helloworld。

 

数据流图

 



 

 搭建 Struts2 的环境

 

1. 下载struts2:http://struts.apache.org/

2. 解压struts-2.3.15.3-all.zip

3. 新建Web工程org.rabbitx.web.struts2.register

4. 加入jar包:把struts-2.3.15.3-all.zip解压文件中apps目录下struts2-blank.war再次解压,把其中struts-2.3.15.3\apps\struts2-blank\WEB-INF\lib下包加入当前 web 应用的 lib 目录下

5. 在 web.xml 文件中配置 struts2: 复制 struts-2.3.15.3\apps\struts2-blank1\WEB-INF\web.xml 文件中的过滤器的配置到当前 web 应用的 web.xml 文件中

6. 在当前 web 应用的 classpath 下添加 struts2 的配置文件 struts.xml: 复制 struts-2.3.15.3\apps\struts2-blank\WEB-INF\classes 下的 struts.xml 文件到当前 web 应用的 src 目录下. 

7. 添加 DTD 约束(配置struts.xml是可以联想)

    7.1 复制struts.xml中dtd地址:http://struts.apache.org/dtds/struts-2.3.dtd;

    7.2 在eclipse中:window->preferenses->XML->XML Catalog->Add

           

      7.3 点击File System添加本地DTD文件,路径为:struts-2.3.15.3\src\core\src\main\resources\struts-2.3.dtd

 

添加JSP页面(除view.jsp有变化外,其他与filter实现相同

 

<%@ 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>首页</title>
</head>
<body>
     <h2><a href="register-user.action">注册用户</a></h2><hr/>
     <p>使用struts2来作为前端控制器,代替servlet.</p>
</body>
</html>

 

<%@ 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>注册</title>
</head>
<body>
     
     <h2>注册</h2><hr/>
     <form action="submit-user.action" method="POST">

               用户名:&nbsp;<input type="text" name="username"><br/>
               密码:&nbsp;&nbsp;<input type="password" name="password1"><br/>
               重复密码:<input type="password" name="password2"><br/>
           <input type="reset" value="重置">
           <input type="submit" value="提交">

     </form>
     <hr/>
     <a href="index.jsp" style="float:right;">返回首页</a>
</body>
</html>

 

<%@ 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>查看</title>
</head>
<body>
     <h2>注册成功</h2>
     <hr/>
     <p>用户名:${username}</p>
     <p>密码:${password1}</p>
      <hr/>
     <a href="index.jsp" style="float:right;">返回首页</a>
</body>
</html>

 

 在web.xml中添加Struts核心控制器

 

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<display-name>Struts2-Register</display-name>

	<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>

	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

 

添加Action

 

package org.rabbitx.web.struts2.register.action;

public class UserAction {

	private String username;
	
	private String password1;
	
	private String password2;

	public String register()
	{
		if(username.isEmpty() || password1.isEmpty() || !password1.equals(password2))
		{
			return "fail";
		}
		else
		{
			return "success";
		}
	}
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword1() {
		return password1;
	}

	public void setPassword1(String password1) {
		this.password1 = password1;
	}

	public String getPassword2() {
		return password2;
	}

	public void setPassword2(String password2) {
		this.password2 = password2;
	}
	
}

 

 配置struts.xml

 

 

<?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="register" extends="struts-default">
	
        <action name="register-user">
            <result>/register.jsp</result>
        </action>
        
        <action name="submit-user" class="org.rabbitx.web.struts2.register.action.UserAction" method="register">
            <result name="success">/view.jsp</result>
            <result name="fail">/register.jsp</result>
        </action>
        
	</package>

</struts>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值