Session小案例------完成用户登录

                              Session小案例------完成用户登录

    在项目开发中,用户登陆功能再平常只是啦,当用户完毕username和password校验后。进入主界面,须要在主界面中显示用户的信息,此时用session来记住用户是最为合适只是了。

功能实现例如以下:
1,完毕用户登陆功能
2,在主界面记住用户
3,完毕用户注销功能

用户类:
package cn.itcast.login;

public class User{
	private String username;
	private String password;
	
	
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public User(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}
	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;
	}
}

登陆:
package cn.itcast.login;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//处理登陆请求
public class LoginServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//request.getAttribute("username");  //从域中取username
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		//检測username与password在数据库中是否存在
		List<User> list = DB.getAll();
		for(User user : list){
			if(user.getUsername().equals(username)  && user.getPassword().equals(password)){
				//从数据库中找到匹配用户。让用户登陆成功
				request.getSession().setAttribute("user", user);
				response.sendRedirect("/day07/index.jsp");
				return;
			}
		}
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().write("用户名或密码错误。!");
	}

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

class DB{
	private static List<User> list = new ArrayList();
	static{
		list.add(new User("aaa","123"));
		list.add(new User("bbb","123"));
		list.add(new User("ccc","123"));
		list.add(new User("ddd","123"));
	}
	
	public static List getAll(){
		return list;
	}
}


注销:
package cn.itcast.login;

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 LogoutServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		HttpSession session = request.getSession(false);
		if(session!=null){ 
			session.removeAttribute("user");
		}
		
		response.sendRedirect("/day07/index.jsp");
	}

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

}

登陆页面:
	<form action="/day07/servlet/LoginServlet" method="post">
  		用户名:<input type="text" name="username"><br/>
  		密码:<input type="password" name="password"><br/>
  		<input type="submit" value="登陆">
  	</form>
  

主页面:
 <body>
    欢迎您:
    <% 
    	User user = (User)session.getAttribute("user");
    	if(user!=null)
    		out.write(user.getUsername());
    %>
    
    <a href="/day07/servlet/LogoutServlet">注销</a>
  </body>


版权声明:本文博主原创文章。博客,未经同意不得转载。

原文地址:https://www.cnblogs.com/blfshiye/p/4802151.html