我创建一个登录页面取用户名和密码,点击后会转到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);
答案 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>