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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>login.html</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>

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

用户的javaBean
User.java:

package cn.edu.login;

public class User {
    private String username;
    private String password;

	public User(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}

	public User(){
		super();
	}
	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;
	}

}

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

便将用户信息加入到session中。
LoginServlet:

package cn.edu.login;

import java.io.IOException;
import java.io.PrintWriter;
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 {
		response.setCharacterEncoding("UTf-8");
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out=response.getWriter();

       String username=request.getParameter("username");
       String password=request.getParameter("password");

       List<User> list=Db.getAll();//这里的Db是我自己写的假数据库,里面有一

些User的账号密码信息,是内部类,在下面有
       for(User user:list){
    	   if(user.getUsername().equals(username)&&user.getPassword

().equals(password)){
    		   request.getSession().setAttribute("user", user);//登陆成

功,向session中存入一个登陆标记
    		   response.sendRedirect("/day07/index.jsp");
    		   return;
    	   }
       }

       out.write("用户名或者密码错误!");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse 

response)
			throws ServletException, IOException {
		doGet(request,response);
	}

}

//模拟数据库(上面提到的)
class Db{
	private static List<User> list=new ArrayList<User>();
	static{
		list.add(new User("aaa","123"));
		list.add(new User("bbb","123"));
		list.add(new User("ccc","123"));
	}

	public static List getAll(){
		return list;
	}
}

欢迎界面,可以从session中拿出用户姓名信息显示在主页上
index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName

()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
    <mate http-equiv="content-type" content="text/html;charset=UTF-8">
  </head>

  <body>
     欢迎您!${user.username}
     <br/>
  <a href="/day07/login.html">登录</a>  <a href="/day07/LogoutServlet">退出

登录</a>

  </body>
</html>

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

LogoutServlet:

package cn.edu.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){
			response.sendRedirect("/day07/index.jsp");
			return;
		}

		session.removeAttribute("user");
		response.sendRedirect("/day07/index.jsp");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse 

response)
			throws ServletException, IOException {
       doGet(request,response);
	}

}

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

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

时间: 2024-11-01 05:26:14

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

【JSP开发】session模拟购物车小例子2

上一篇写模拟购物车不够详细,只写了买一个商品进购物车的场景,这次提供一个完整的模拟购物车的例子(可以选取多个商品进购物车) (上一篇的连接:http://blog.csdn.net/acmman/article/details/43450845) 购物车的主页,有商品列表,每一个商品后面都有一个"购买"按钮,用户点击商品的购 买按钮,就会将商品加入购物车(也就是将商品加入session中) ListBookServlet: package cn.edu.shoping; import

【JSP开发】session模拟购物车小例子

利用session来模拟购物网站的购物车,这次没有用静态页面,全部用Servlet来模拟. 用户点击购买之后,就会将商品加入到购物车中(其实就是放入session中),等用户点 击结账的时候,就会将购物车中的信息全部给用户看. 欢迎界面,里面有"购买"."结账"链接,点击购买,就会加入"洗衣机"这个商品.然后 点击"结账"就会看到你买的商品 WelcomeServlet: package cn.edu.session; imp

netbeans6.5开发JSF+Hibernate的一个小例子(原创)

问题描述 只是一个简单的小例子,希望能对初学者有点帮助我也只是一个初学者,其中的错误还请大家指出http://www.cnblogs.com/halgogo/archive/2009/01/11/1373730.html 解决方案 解决方案二:加油解决方案三:我也是在初学,多多交流解决方案四:加油!

用C语言写一个小系统,要求登录时,输入密码错误三次后,必须等10分钟才能再次登录。

问题描述 用C语言写一个小系统,要求登录时,输入密码错误三次后,必须等10分钟才能再次登录. 写一个小系统,要求登录时,输入密码错误三次后,必须等10分钟才能再次登录.怎么样实现? 解决方案 第一个循环三次判断,用户登录是否成功. for(i =0 ; i<3; i++){...} if(i >=3){ startTime = currenttime; endTime= currenttime; timespan = endTime - startTme; while(timespan <

【JSP开发】有关session的一些重要的知识点

1.session的ID 当用户在一个页面浏览并创建了一个session后,在另外一个页面得到那个session,浏览器是如何知道拿哪一个session给用户呢?原理是: session是基于cookie的,创建session的时候会为session创建一个id号,当另外一个页面去得到session时,就会按照cookie的id号去获取相应的session. 但是要注意的是,这个cookie是没有有效期的,浏览器一旦关闭它就没有了,所以需要对这个cookie设置有效期.(可以做到用户关闭浏览器后

Java Web开发防止多用户重复登录的完美解决方案_java

目前web项目中,很多情况都是可以让同一个账户信息在不同的登录入口登录这次,这样子就不那么美好了. 推荐阅读: Java 多用户登录限制的实现方法 现在有两种解决方案: 1.将用户的登录信息用一个标志位的字段保存起来,每次登录成功就标记1,注销登录就标记为0,当标记为1的时候不允许别人登录. 2.将用户的登录信息保存在application内置作用域内, 然后利用session监听器监听每一个登录用户的登录情况. 很显然,第一种方式 每次登录 都需要操作数据库,多了一些不必要的性能开销,而且在登

JSP开发工具的选择

js JSP引擎搭建起来后就可以着手使用开发工具进行JSP的编程了,现下流行的JSP开发工具主要有IBM VisualAge,JBuilder,NetBeans,JRun,Urledit,dreamweaver,editplus等,这里我们主要介绍IBM VisualAge,JBuilder, Jrun三种工具的一些基本情况,大家可以参照其各自的特点,结合自身开发环境进行开发工具的选择. IBM VisualAge for Java IBM的Web开发产品可谓同类之中的庞然大物:体积庞大,功能众

新手指南:Jsp开发环境配置全过程

js|过程 在配置Jsp开发环境的过程中会碰到不少问题,感谢许多前辈经验总结性的文章对我来说简直是雪中送碳,为了帮助像我一样的初学者,在此总结了不少作者的经验,非常感谢他们的无私奉献精神,也希望更多的人把这种精神发扬光大. 以下软件下载连接地址无法显示的话,请直接到官方网站下载即可! 软件下载 Mysql 下载版本:mysql-4.1.13-win32.zip(Windows downloads) http://dev.mysql.com/downloads/mysql/4.1.html JDB

Jsp开发环境配置全过程

js|过程 在配置Jsp开发环境的过程中会碰到不少问题,感谢许多前辈经验总结性的文章对我来说简直是雪中送碳,为了帮助像我一样的初学者,在此总结了不少作者的经验,非常感谢他们的无私奉献精神,也希望更多的人把这种精神发扬光大. 以下软件下载连接地址无法显示的话,请直接到官方网站下载即可! 软件下载 Mysql 下载版本:mysql-4.1.13-win32.zip(Windows downloads) http://dev.mysql.com/downloads/mysql/4.1.html JDB