【JSP开发】有关session的登录注销的一个小例子

来源:互联网 发布:新浪微博绑定淘宝店铺 编辑:程序博客网 时间:2024/06/05 17:02

转载自:http://blog.csdn.net/acmman/article/details/43450615

下面是一个session的应用的小例子,是用来注销登录的
登陆界面的代码:
login.html:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  2. <html>  
  3.   <head>  
  4.     <title>login.html</title>  
  5.       
  6.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  7.     <meta http-equiv="description" content="this is my page">  
  8.     <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  9.       
  10.     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->  
  11.   
  12.   
  13.   </head>  
  14.     
  15.   <body>  
  16.     <form action="/day07/LoginServlet" method="post">  
  17.           用户名:<input text="text" name="username"><br/>  
  18.           密码:  <input text="password" name="password"><br/>  
  19.     <input type="submit" value="登陆">  
  20.   </body>  
  21. </html>  


用户的javaBean
User.java:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package cn.edu.login;  
  2.   
  3.   
  4. public class User {  
  5.     private String username;  
  6.     private String password;  
  7.      
  8.     public User(String username, String password) {  
  9.         super();  
  10.         this.username = username;  
  11.         this.password = password;  
  12.     }  
  13.       
  14.     public User(){  
  15.         super();  
  16.     }  
  17.     public String getUsername() {  
  18.         return username;  
  19.     }  
  20.     public void setUsername(String username) {  
  21.         this.username = username;  
  22.     }  
  23.     public String getPassword() {  
  24.         return password;  
  25.     }  
  26.     public void setPassword(String password) {  
  27.         this.password = password;  
  28.     }  
  29.       
  30.       
  31. }  


处理登录信息的Servlet,如果用户账号密码输入正确,就让用户跳转到欢迎界面,顺


便将用户信息加入到session中。
LoginServlet:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package cn.edu.login;  
  2.   
  3.   
  4. import java.io.IOException;  
  5. import java.io.PrintWriter;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.   
  9.   
  10. import javax.servlet.ServletException;  
  11. import javax.servlet.http.HttpServlet;  
  12. import javax.servlet.http.HttpServletRequest;  
  13. import javax.servlet.http.HttpServletResponse;  
  14.   
  15.   
  16. public class LoginServlet extends HttpServlet {  
  17.   
  18.   
  19.     public void doGet(HttpServletRequest request, HttpServletResponse   
  20.   
  21.   
  22. response)  
  23.             throws ServletException, IOException {  
  24.         response.setCharacterEncoding("UTf-8");  
  25.         response.setContentType("text/html;charset=UTF-8");  
  26.         PrintWriter out=response.getWriter();  
  27.           
  28.        String username=request.getParameter("username");    
  29.        String password=request.getParameter("password");  
  30.          
  31.        List<User> list=Db.getAll();//这里的Db是我自己写的假数据库,里面有一  
  32.   
  33.   
  34. 些User的账号密码信息,是内部类,在下面有  
  35.        for(User user:list){  
  36.            if(user.getUsername().equals(username)&&user.getPassword  
  37.   
  38.   
  39. ().equals(password)){  
  40.                request.getSession().setAttribute("user", user);//登陆成  
  41.   
  42.   
  43. 功,向session中存入一个登陆标记  
  44.                response.sendRedirect("/day07/index.jsp");        
  45.                return;  
  46.            }  
  47.        }  
  48.          
  49.        out.write("用户名或者密码错误!");  
  50.     }  
  51.   
  52.   
  53.     public void doPost(HttpServletRequest request, HttpServletResponse   
  54.   
  55.   
  56. response)  
  57.             throws ServletException, IOException {  
  58.         doGet(request,response);  
  59.     }  
  60.   
  61.   
  62. }  
  63.   
  64.   
  65. //模拟数据库(上面提到的)  
  66. class Db{  
  67.     private static List<User> list=new ArrayList<User>();  
  68.     static{  
  69.         list.add(new User("aaa","123"));  
  70.         list.add(new User("bbb","123"));  
  71.         list.add(new User("ccc","123"));  
  72.     }  
  73.       
  74.     public static List getAll(){  
  75.         return list;  
  76.     }  
  77. }  


欢迎界面,可以从session中拿出用户姓名信息显示在主页上
index.jsp:
[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName  
  5.   
  6.   
  7. ()+":"+request.getServerPort()+path+"/";  
  8. %>  
  9.   
  10.   
  11. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  12. <html>  
  13.   <head>  
  14.     <title>My JSP 'index.jsp' starting page</title>  
  15.     <mate http-equiv="content-type" content="text/html;charset=UTF-8">  
  16.   </head>  
  17.     
  18.   <body>  
  19.      欢迎您!${user.username}   
  20.      <br/>  
  21.   <a href="/day07/login.html">登录</a>  <a href="/day07/LogoutServlet">退出  
  22.   
  23.   
  24. 登录</a>  
  25.   
  26.   
  27.   </body>  
  28. </html>  



//注销时使用的Servlet,将session中加入的用户信息清除

LogoutServlet:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package cn.edu.login;  
  2.   
  3.   
  4. import java.io.IOException;  
  5.   
  6.   
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11. import javax.servlet.http.HttpSession;  
  12. //完成用户注销  
  13. public class LogoutServlet extends HttpServlet {  
  14.     public void doGet(HttpServletRequest request, HttpServletResponse   
  15.   
  16.   
  17. response)  
  18.             throws ServletException, IOException {  
  19.         HttpSession session=request.getSession(false);  
  20.         if(session==null){  
  21.             response.sendRedirect("/day07/index.jsp");  
  22.             return;  
  23.         }  
  24.           
  25.         session.removeAttribute("user");  
  26.         response.sendRedirect("/day07/index.jsp");  
  27.     }  
  28.   
  29.   
  30.     public void doPost(HttpServletRequest request, HttpServletResponse   
  31.   
  32.   
  33. response)  
  34.             throws ServletException, IOException {  
  35.        doGet(request,response);  
  36.     }  
  37.   
  38.   
  39. }  

这样,当用户点击退出登录的时候,session中就没有用户的相应信息,用户再次进入主页或登录页面的时候,就会显示用户没有登录。


转载请注明出处:http://blog.csdn.net/acmman


0 0
原创粉丝点击