gpt4 book ai didi

java - 单击“重定向”按钮终止我的 session 并重定向到登录页面

转载 作者:行者123 更新时间:2023-12-01 12:47:36 27 4
gpt4 key购买 nike

这是我的 Java 代码和 HTML 代码。

当用户单击“重定向”按钮时,我想将他重定向到登录页面并终止当前 session 。我已经成功完成了重定向部分,但我不知道如何终止 session 。我想在 HTML 的 action= 中使用 session.invalidate 。这可以吗?如果不能,那么最好的替代方案是什么?谢谢。

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.WebServlet;
import java.io.*;

@WebServlet("/test1")
public class test1 extends HttpServlet{

public void init(){

System.out.println("init is called");
}

public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException{

res.setContentType("text/html");

PrintWriter pw=res.getWriter();// used to type in the browser

String s=req.getParameter("username");
String s2=req.getParameter("pwd");

// Create a session object if it is already not created.
HttpSession session = req.getSession(true);



if(s.equals("ace")&& s2.equals("123"))
{
//pw.println("<h1>"+"Welcome to the world of servlets "+s+"</h1>");



String title= "Welcome to the world of servlets: "+s;

String s3="The session id is: "+session.getId();

String docType =
"<!doctype html public \"-//w3c//dtd html 4.0 " +
"transitional//en\">\n";

pw.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor=\"#f0f0f0\">\n" +
"<h1 align=\"center\">" + title + "</h1>\n" +
"<h1 align=\"center\">" + s3 + "</h1>\n"+
"<ul>\n" +
"<input type=\"button\" onclick=\"location.href('http://localhost:8080/AkshayServlet2/test.html');\" value=\"Redirect\">"+

"</ul>\n" +
"</body></html>");

session.invalidate();

//System.out.println.print("You have logged out");


}
else
{

pw.println("Please enter the correct username and password");
req.getRequestDispatcher("test.html").include(req, res);;

}


}

public void destroy(){

System.out.println("calling destroy method");

}

}

HTML 代码:

<html>
<body>

<form action="test1" method=get> <!-- we use xy because we used xy in the url in web.xml. We have to map it to the url -->

Enter UserName: <input type=text name=username><br>
Enter Password: <input type=password name=pwd><br>

<input type=submit value="Login">

</form>

</body>

</html>

最佳答案

您必须调用 HttpServletRequest::getSession 方法,以便创建一个新 session 来替换先前无效的 session 。

在 session 失效行后添加以下代码:

req.getSession(true);

关于java - 单击“重定向”按钮终止我的 session 并重定向到登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24534916/

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