我如何使用JSP和Servlet编辑页面的URL

问题描述

这是我在本地主机上的项目的URL,该主机是登录页面::“ http:// localhost:8080 / OnlineExamination”

在此登录有效后,我希望将URL更改为“ http:// localhost:8080 / OnlineExamination / home-page”,以防止用户在登录时将其带回登录页面页面重新加载。如何使用JSP和Servlet做到这一点?我使用了一个提交类型输入,其中锚标记周围的输入导致未提交登录表单。请帮忙!

解决方法

重定向或转发-我应该选择哪个?

由于要在浏览器中更改URL,因此必须将重定向指令发送到浏览器,而不是将请求转发到其他资源。请注意,转发请求时,新资源将从请求中获取所有内容,URL保持不变。另一方面,在重定向的情况下,浏览器会为新位置(URL)创建一个新请求,这意味着旧请求中的任何内容都将无法用于新请求。

如何在请求之间共享一些信息?

您将不得不选择更大的范围,例如session;只需将信息放入会话中,然后在新位置进行检索即可。

该概念的说明:

OnlineExamination.java

@WebServlet("/OnlineExamination")
public class OnlineExamination extends HttpServlet {
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
        response.setContentType("text/plain");
        // Code to check user credentials
        // ...
        // ...
        request.getSession().setAttribute("loggedIn",true);
        response.sendRedirect("OnlineExamination/home-page");
    }
}

HomePage.java

@WebServlet("/OnlineExamination/home-page")
public class HomePage extends HttpServlet {
    public void doGet(HttpServletRequest request,IOException {
        response.setContentType("text/plain");
        PrintWriter out = response.getWriter();
        out.write("" + request.getSession().getAttribute("loggedIn"));
    }
}

这是一个非常基本的代码,仅用于说明概念。在一个真实的项目中,您可能会选择一些框架,该框架可以提供各种方法来完成所有这些任务。

,

您应使用“解释器”来阻止有效的登录用户访问链接。如果仅将用户重定向到主页,他们仍然可以访问登录页面。 或者,您只是创建一个简单的函数,如果他们访问登录页面但已经登录,则必须将其重定向到首页。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...