Struts入门 不用数据库 Struts实现 注册+登陆

       相信很多同学在初学 Struts 的时候 ,都有遇到过 使用 Struts 做一个注册+登陆  的功能,但是 部分同学,就像楼主一样,把这个项目分开来做 都没问题,可是一合起来就有点束手无册了。遇到的问题就是 :又不用数据库,如何把注册的名字和密码保存起来?  因为 登陆的时候要使用。        楼主在做这个项目的时候,第一时间就是去百度,可是强大的百度也搜不到 我的问题,于是楼主就只有自己去琢磨了。花了两三个小时终于写出来了。下面把代码贴出来,相信大家一看就会明白了。 这是注册界面   register.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>register</title>

<script type="text/Javascript">
function register() {
	var isRegister = true;
	var name = document.getElementById("registernameid").value;
	var pwd = document.getElementById("registerpwdid").value;
	if (name == "" || pwd == "") {
		isRegister = false;
		alert("用户名或密码不能为空");
	}
	return isRegister;
}


</script>

</head>
<body>
	<div align="center">
		<form action="register" method="post" onsubmit="return register()">
			注册名:<input type="text" name="registername" id="registernameid"/><br> <br>
			密 码: <input type="passWord" name="registerpwd" id="registerpwdid" /> <br><br>
				<input type="submit" value="注册" />
		</form>
	</div>
</body>
</html>


这是登陆界面  login.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>login</title>
</head>
<body>
名:${username2 }<br>
密:${pwd2 }
	<div align="center">
	<h1>注册成功!请登录</h1>
		<form action="login" method="post">
			登录名:<input type="text" name="username" /><br> <br>
			密码: <input type="password" name="password" /> <br><br>
				<input type="hidden" name="registername3" value="${username2 }">
				<input type="hidden"  name="registerpwd3" value="${pwd2 }">
				<input type="submit" value="登陆" />
		</form>
	</div>
</body>
</html>

这是RegisterAction.java
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport{
	PRivate String registername;  
	private String registerpwd;

	public String getRegistername() {
		return registername;
	}

	public void setRegistername(String registername) {
		this.registername = registername;
	}

	public String getRegisterpwd() {
		return registerpwd;
	}

	public void setRegisterpwd(String registerpwd) {
		this.registerpwd = registerpwd;
	}
	

	
	
	@Override
	public String execute() throws Exception {
			System.out.println("名:"+registername);
		System.out.println("密码:"+registerpwd);
			
		ActionContext context=ActionContext.getContext();
		context.put("username2", registername);
		context.put("pwd2", registerpwd);

		return SUCCESS;
	}
}


这是LoginAction.java


import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
		private String  username;
		private String  password;
		private String  registername3;
		private String  registerpwd3;
	
	
	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 getRegistername3() {
			return registername3;
		}


		public void setRegistername3(String registername3) {
			this.registername3 = registername3;
		}


		public String getRegisterpwd3() {
			return registerpwd3;
		}


		public void setRegisterpwd3(String registerpwd3) {
			this.registerpwd3 = registerpwd3;
		}


	@Override
	public String execute() throws Exception {
	System.out.println("username:"+username);
	System.out.println("password:"+password);
	System.out.println("registername3:"+registername3);
	System.out.println("registerpwd3:"+registerpwd3);
	
	if (username.equals(registername3)&&password.equals(registerpwd3)) {
		return SUCCESS;
	}else {
		return ERROR;
	}
	
		
	}
}


struts.xml   这里的 class 是我的 包名和类名,对于大家应该不是问题 


<?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="default" namespace="/" extends="struts-default">
      <action name="register" class="com.lwy.RegisterAction">
      <result name="success">/login.jsp</result>
      </action>
       <action name="login" class="com.lwy.LoginAction">
       <result name="success">/success.jsp</result>
       <result name="error">/error.jsp</result>
       </action>
       
    </package>
    
    
    
</struts>


web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>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>register.jsp</welcome-file>
    </welcome-file-list>
</web-app>








大家看明白了吗,其实关键就在:要把 RegisterAction.java  中的 姓名和密码 传到 login.jsp中,再 通过 一个  隐藏的(hidden)   input  再次传到  LoginAction.java 中 ,然后剩下 error页面 和success 页面就没传上了。