如何避免直接访问jsp页面

时间:2014-10-28 18:33:01

标签: jsp

我创建一个登录页面取用户名和密码,点击后会转到JSP。 我如何隐藏用户无法直接访问JSP页面。 在下面的代码中,如果用户直接输入JSP页面地址,他/她将收到:

HTTP Status 500 - Internal Server Error

我希望用户重定向到登录页面。

   String username = request.getParameter("username");
    String password = request.getParameter("password");
    if(username == null || password == null){
        response.sendRedirect("facultylogin.html");

    }
    UpdateFaculty fl = new UpdateFaculty();
    if(fl.facultyCheck(username, password)){
        Teacher t = fl.fillForm(username, password);

2 个答案:

答案 0 :(得分:2)

只需将JSP文件放在WEB-INF文件夹下,容器就永远不会直接提供。但是你可以从另一个servlet(包括JSP)转发到它。

答案 1 :(得分:1)

或者你可以将你的jsp文件放在一个名为pages的文件夹中,并在web.xml中添加一个安全约束

<security-constraint>
    <web-resource-collection>
        <web-resource-name>JSP Files</web-resource-name>
        <description>No direct access to JSP files</description>
        <url-pattern>/pages/*</url-pattern>
        <http-method>POST</http-method>
        <http-method>GET</http-method>
    </web-resource-collection>
    <auth-constraint>
        <description>No direct browser access to JSP files</description>
        <role-name>NobodyHasThisRole</role-name>
    </auth-constraint>
</security-constraint>