Session 存放用户登入信息

input{
margin:12px;
font-size:15px;
color:SaddleBrown;
vertical-align:middle;
padding:5px;
font-family:楷体;
font-weight:bold;
}
[type=text],[type=password]{
width:180px;
height:30px;
border-radius:5px;
}
[type=submit],[type=reset] {
width:80px;
padding:5px;
background:Crimson;
color:white;
font-weight:bold;
font-family:楷体;
border-radius:7px;
}
body{font-weight:bold;font-family:楷体;}
a{text-decoration:none;}
a:link{color:blueViolet;}
a:visited{color:brown;}
a:hover{color:orangeRed;}
a:active{color:dimGray;}

from.css

<html>
	<head>
		<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
		<title>表单</title>
		<link rel=stylesheet href="from.css" type="text/css">
		<script type="text/javascript">
			/*用户名验证*/
			function check_name() {
				var nameNode = document.getElementsByName("user")[0];
				var name = nameNode.value;
				var spanNode = document.getElementById("userNameSpan");
				if(name.length > 6){
					spanNode.innerHTML = "用户名不能超过6个字".fontcolor("red");
					return false;
				} 
				if(name.length == 0) {
					spanNode.innerHTML = "用户名不能为空".fontcolor("red");
					return false;
				}
				spanNode.innerHTML="";
				return true;
			}
			/*密码验证*/
			function check_password() {
				var nameNode = document.getElementsByName("password")[0];
				var name = nameNode.value;
				var spanNode = document.getElementById("userPassSpan");
				if(name.length > 16){
					spanNode.innerHTML = "密码不能超过16个字".fontcolor("red");
					return false;
				}
				if(name.length == 0) {
					spanNode.innerHTML = "密码不能为空".fontcolor("red");
					return false;
				}
				spanNode.innerHTML="";
				return true;
			}
			function submitForm() {
				return check_name()&&check_password();
			}
			
			function changeImage(img) {
				/*后面添加随机值,防止浏览器缓存*/
				img.src = img.src + "?" + new Date().getTime();
			}
		</script>
	</head>
	<body align="center">
		<h1>登  入</h1>
		<form align="center" action="/ServletExample6_Cookie_Session/SessionDemo" method="get" οnsubmit="return submitForm()">
			用  户<input type="text" name="username" οnblur="check_name()" placeholder="请输入账号"/><br> 
			<span id="userNameSpan"></span><br/>
			密  码<input type="password" name="userpassword" οnblur="check_password()" placeholder="请输入密码"/><br> 
			<span id="userPassSpan"></span><br/>
			<!-- 图片点击时,重新发送图片请求,更换图片验证码 -->
			<img src="/ServletExample6_Cookie_Session/RandomPictureServlet" οnclick="changeImage(this)"/><br> 
			认  证<input type="password" name="authentication" placeholder="请输入认证码"/><br> 
			<span id="userAuthenticationSpan"></span><br/>
			<input type="submit" value="提交" />
			<input type="reset" value="重置"/><br/>
		</form>
	</body>
</html>

login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	登入失败
</body>
</html>

defeated.html

<html>
	<head>
		<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
	</head>
	<body>
		登入成功<a href="/ServletExample6_Cookie_Session/DeleteSessionServlet">退出登入</a>
	</body>
</html>

succeed.html

package cn.et;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SessionDemo extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public SessionDemo() {
        super();
    }
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			Thread.sleep(1000*3);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("login");
		//Session技术把用户的数据存储在浏览器中
		HttpSession session = request.getSession(false);
		
		User sessionUser = (User)session.getAttribute("user");
		
		
		//判断root 123456这个账号是否已登入,可选择处理方式,比如切换账号、跳至已登入的账号...
		User loginUser = new User("root","123456");
		if(loginUser.equals(sessionUser)) {
			request.getRequestDispatcher("/succeed.html").forward(request, response);
			return;
		}
		
		String username = request.getParameter("username");
		String userpassword = request.getParameter("userpassword");
		String authentication = request.getParameter("authentication");
		if(username!=null || userpassword!=null) {
			System.out.println(username.equals("root") && userpassword.equals("123456"));
			//判断用户名、密码是否正确
			if(username.equals("root") && userpassword.equals("123456")) {
				//向Session中存入一个登入标记
				request.getSession().setAttribute("user",new User("root","123456"));
				request.getRequestDispatcher("/succeed.html").forward(request, response);
				return;
			} else {
				request.getRequestDispatcher("/defeated.html").forward(request, response);
			}
		}else {
			request.getRequestDispatcher("/defeated.html").forward(request, response);
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
package cn.et;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class DeleteSessionServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    public DeleteSessionServlet() {
        super();
       
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession(false);
		if(session==null){
			request.getRequestDispatcher("/login.html").forward(request, response);
			return;
		}
		session.removeAttribute("user");
		request.getRequestDispatcher("/login.html").forward(request, response);
		return;
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值