gpt4 book ai didi

java - 如何使用 Java 将 session 限制为单个浏览器选项卡

转载 作者:搜寻专家 更新时间:2023-11-01 03:52:20 25 4
gpt4 key购买 nike

我不希望在浏览器选项卡之间共享用户的 HTTP session 。

例如,如果用户在第一个选项卡中登录系统,他可以看到他的所有个人资料详细信息。但是,当从另一个新标签(第二个标签)点击相同的 URL 时,它也会显示相同的用户个人资料详细信息。

我想将用户 session 限制为仅打开第一个选项卡。如果打开另一个选项卡,则不应使用第一个选项卡的 session 。有什么办法可以做到这一点?

最佳答案

您不能为浏览器中的每个选项卡创建不同的 session 。

下面的方法用于限制用户在浏览器的另一个选项卡中再次登录同一个应用程序。

这对我有用。

IE 中,您必须在浏览器中创建新 session 才能以不同的用户身份登录。

您可以通过以下步骤限制用户不能在另一个标签中打开URL

  1. 当用户点击login按钮时,请检查server code中的session as,

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setCharacterEncoding("UTF-8");
    response.setContentType("UTF");
    PrintWriter out = response.getWriter();
    request.setCharacterEncoding("UTF-8");

    String name = request.getParameter("name");
    String password = request.getParameter("password");
    boolean loginStatus ;

    if( (name != null && name.equals("human")) && (password != null && password.equals("human")) ){
    loginStatus = true;
    HttpSession session = request.getSession();

    String status = (String)session.getAttribute("status");

    if(status != null && status.equals("loggedin")){

    // if status is not null , you can justify that , the user is already loggedin in the same session

    response.sendRedirect("redirect.jsp");

    }else{

    // If the user is trying to login first time,This will work

    // do your login work here

    if(loginStatus){
    session.setAttribute("status","loggedin");
    RequestDispatcher rd = request.getRequestDispatcher("success.jsp");
    rd.forward(request, response);
    }
    }
    }else{

    System.out.println("Authentication failed !");
    response.sendRedirect("fail.jsp");
    }

    }

您的 redirect.jsp 将是,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Calculator</title>
</head>

<script type="text/javascript"></script>

<body>
<h1 style="color:red;"> You are already in logged in state </h1>

</body>

</html>

希望这个技巧能奏效。

关于java - 如何使用 Java 将 session 限制为单个浏览器选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com