我有一个应用程序需要验证当前页面的请求是否来自特定页面。如果请求未来自该页面,我需要显示请求应该来自的页面。 可能的方法是什么? 我想到了一个加密值,这个值可以出现在两个页面中,如果已经传递了这些值,则意味着请求来自所需的页面。如果值为NULL,则表示它不是来自所需页面。因此,我需要显示用户期望来的所需页面。
我只是想知道是否有比我更好的方法。
答案 0 :(得分:0)
将页面放在/WEB-INF
中并在servlet中使用RequestDispatcher#forward()
并使用POST而不是GET。
放入/WEB-INF
会阻止网址直接访问。在第一页中有一个指向servlet url-pattern
的链接或表单。使用POST可以防止用户直接调用servlet。
first.jsp
的基本示例:
<form action="servletUrlPattern" method="post">
<input type="submit">
</form>
Servlet的基本示例:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// You can eventually do here other form-related stuff, if any.
// Now forward to second.jsp in WEB-INF.
request.getRequestDispatcher("/WEB-INF/second.jsp").forward(request, response);
}