关于同一PC同以浏览器多个用户登录
2012-06-29 11:12
330 查看
1.session是同一浏览器共享的.
但是同一浏览器同一PC他们的session是不一样的..
所以也就不是共享的.
但是如果你在同一台机器上,并且是 同意浏览器
你登录两个用户.? 用session保存用户对象。
后面的一个会把前面一个冲掉
例如
Java代码
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"); }
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代码
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);
}
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代码
<%
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());
%>
<% 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()); %>
相关文章推荐
- java项目同一浏览器下限制用户重复登录
- 关于两个用户用同一浏览器不能同时登录同一网站的问题(session覆盖问题)
- 关于用户登录的记住密码实现思路(考虑到安全问题)
- 网站报 登录失败。 用户 'PC-201005192241\ASPNET'
- 关于“只有注册用户登录后才能阅读该文”
- 如何限制同一客户端登录的用户数量以及禁止同一用户同时在不同客户端登录? (转)
- PHP判断用户使用手机端登录还是pc端登录(企业版)
- 浏览器如IE、谷歌、火狐等,有没有查看cookie的插件?即可以查看当前浏览器中写入的当前用户登录信息有哪些。
- 关于Jfinal中用户登录的问题
- 你会做Web上的用户登录功能吗?——关于用户登录你真的做好了吗?
- 解决用户注销后点击浏览器返回刷新页面重复登录的问题
- Raspberry Desktop 用户自动登录设置,屏幕禁止休眠设置,浏览器全屏设置
- ASP.NET 关于session和cookies保存用户登录信息
- 关于同一用户不能同时在两台电脑上登录问题的解决方案
- 关于实现判断用户是在PC端和还是移动端访问。
- 关于IOS7.1企业版发布后,用户通过sarafi浏览器安装无效的解决方案:
- 关于B/S架构下,如何让同一账号不能多次登录
- 关于 用户XXX登录失败 原因: 未与信任 SQL Server 连接相关联
- c#中连接数据库关于sqlconnection的用户sa无法登录的问题
- 关于的PostgreSQL的登录角色,组角色,用户等概念及权限分配上的区别