关于同一PC同以浏览器多个用户登录

 

1.session是同一浏览器共享的.
但是同一浏览器同一PC他们的session是不一样的..
所以也就不是共享的.
但是如果你在同一台机器上,并且是 同意浏览器
你登录两个用户.?  用session保存用户对象。
后面的一个会把前面一个冲掉

例如

Java代码
  1. public class Order   
  2. {   
  3.     private String user;   
  4.     private String password;   
  5.     public String getUser()   
  6.     {   
  7.         return user;   
  8.     }   
  9.     public void setUser(String user)   
  10.     {   
  11.         this.user = user;   
  12.     }   
  13.     public String getPassword()   
  14.     {   
  15.         return password;   
  16.     }   
  17.     public void setPassword(String password)   
  18.     {   
  19.         this.password = password;   
  20.     }   
  21.        
  22. }   
  23.   
  24.   
  25.   
  26. public void doPost(HttpServletRequest request, HttpServletResponse response)   
  27.             throws ServletException, IOException   
  28.     {   
  29.         Order order = new Order();   
  30.         HttpSession hs = request.getSession();   
  31.         hs.invalidate();   
  32.            
  33.            
  34.         String user = request.getParameter("user");   
  35.         String password =request.getParameter("password");   
  36.            
  37.         order.setUser(user);   
  38.         order.setPassword(password);   
  39.            
  40.         hs.setAttribute(user, order);   
  41.         response.sendRedirect("wel.jsp");   
  42.     }  
public class Order
{
	private String user;
	private String password;
	public String getUser()
	{
		return user;
	}
	public void setUser(String user)
	{
		this.user = user;
	}
	public String getPassword()
	{
		return password;
	}
	public void setPassword(String password)
	{
		this.password = password;
	}
	
}



public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException
	{
		Order order = new Order();
		HttpSession hs = request.getSession();
		hs.invalidate();
		
		
		String user = request.getParameter("user");
		String password =request.getParameter("password");
		
		order.setUser(user);
		order.setPassword(password);
		
		hs.setAttribute(user, order);
		response.sendRedirect("wel.jsp");
	}
 

 

 

 

你用session保存对象的时候就会冲掉前面的对象

当你刷新前面登录的页面的时候就会编程第二个登录用户的信息

 

那我们如何做到同意浏览器,同一PC机.登录两个用户呢.

我们可以根据唯一标识符,或者用户名传递的方式,确定登录的是不同的用户.

 

因为这样session里面保存的是不同的值,通过转发传递唯一用户名,来取相应的对象.

 

但是这样做性能并不好,因为如果有成千上万的客户登录,那岂不是session里面要保存成千上万个属性值

 

所以不可取,

很纠结的问题

 

修改后的代码如下:

 

 

 
Java代码
  1. public void doPost(HttpServletRequest request, HttpServletResponse response)   
  2.             throws ServletException, IOException   
  3.     {   
  4.         Order order = new Order();   
  5.         HttpSession hs = request.getSession();   
  6.         hs.invalidate();   
  7.            
  8.            
  9.         String user = request.getParameter("user");   
  10.         String password =request.getParameter("password");   
  11.            
  12.         order.setUser(user);   
  13.         order.setPassword(password);   
  14.            
  15.         hs.setAttribute(user, order);   
  16.         response.sendRedirect("wel.jsp?u="+user);   
  17.     }  
public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException
	{
		Order order = new Order();
		HttpSession hs = request.getSession();
		hs.invalidate();
		
		
		String user = request.getParameter("user");
		String password =request.getParameter("password");
		
		order.setUser(user);
		order.setPassword(password);
		
		hs.setAttribute(user, order);
		response.sendRedirect("wel.jsp?u="+user);
	}
 


然后我们在用用户的时候

就可以通过过来的唯一标识符(或用户名)来从session中获取相应的对象了

记住,你每次跳转页面操作的时候,都需要传递,因为要从session中获取相应的对象

代码如下:

 

Java代码
  1. <%   
  2.             String u = request.getParameter("u");   
  3.             HttpSession hs = request.getSession();   
  4.             Order order = (Order)hs.getAttribute(u);   
  5.             out.println("user="+order.getUser());   
  6.             out.println("password="+order.getPassword());   
  7.          %>  
<%
  			String u = request.getParameter("u");
  			HttpSession hs = request.getSession();
  			Order order = (Order)hs.getAttribute(u);
  			out.println("user="+order.getUser());
  			out.println("password="+order.getPassword());
  		 %>
 












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值