下面的URL,所选答案中的第一个内容描述JSP隐藏。隐藏JSP页面不能直接访问,但是如何访问目标页面?
Hidden features of JSP/Servlet
我至今明白,我可以把JSP文件/ WEB-INF目录下。因此,它可以防止用户像http://test.com/WEB-INF/register.jsp
(返回404)
直接访问我认为我理解但不是,并希望更好地描述,所以我打开这里的问题。
我有,比如下面的2个jsp文件。
的webapps/ROOT /针对home.jsp
的webapps/ROOT/WEB-INF/register.jsp
注:/go_register
是在web.xml映射到servlet类Register
(DD)
回到Home.jsp
<html>
<body>
<a href="/go_register">Go to register.jsp</a>
<body>
</html>
register.jsp
<html>
<body>
<form method="post" action="/process_register">
<input type="submit">
</form>
<body>
</html>
所以..因为register.jsp驻留在/ WEB-INF /只的RequestDispatcher可以访问它。 这意味着我需要创建servlet来转发请求。
public class Register extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String address = "/WEB-INF/register.jsp";
request.getRequestDispatcher(address).forward(request, response);
}
}
但这看起来不对。如果我想添加登录页面/WEB-INF/login.jsp到home.jsp, 为了访问login.jsp,我必须创建另一个servlet 只是为了进入登录页面目的? ??
public class Login extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String address = "/WEB-INF/login.jsp";
request.getRequestDispatcher(address).forward(request, response);
}
}
我想我以错误的方式使用该技术。任何人都可以解释如何使用这个jsp隐藏?
前端控制器模式似乎是满足我需求的方式。我想过集中入门点,但从来没有想过这种模式,感谢链接! – 2010-09-17 10:43:16