验证来自特定页面的请求

时间:2009-12-21 05:30:25

标签: jsp java-ee

我有一个应用程序需要验证当前页面的请求是否来自特定页面。如果请求未来自该页面,我需要显示请求应该来自的页面。 可能的方法是什么? 我想到了一个加密值,这个值可以出现在两个页面中,如果已经传递了这些值,则意味着请求来自所需的页面。如果值为NULL,则表示它不是来自所需页面。因此,我需要显示用户期望来的所需页面。

我只是想知道是否有比我更好的方法。

1 个答案:

答案 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);
}