下面的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