我正在使用IntellijIdea Ultimate来创建Java Servlet。有一些.html页面(page1.html,page2.html,...)。
当我第一次使用servlet时,servlet必须返回page1.html。不能直接访问此html页面,而只能使用servlet。此外,servlet必须使用带有规则的文件来装饰这些页面:
page1->next = page2;
page2->next = page3; page2->back=page1;
所以在第一次请求时,servlet将返回用一个操作是同一个servlet的表单和一个值为“Page 2”的按钮修饰的page1。如何动态装饰这些页面并使其无法访问(只能使用servlet访问 - 在IntellijIdea中)?
答案 0 :(得分:1)
将文件放在WEB-INF下以使其无法访问。然后在您的servlet中,而不是使用response.sendRedirect
使用调度程序转发。
request.setAttribute("someVariable", listOfStuff);
request.getRequestDispatcher("/WEB-INF/page1.jsp").forward(request, response);
要做任何有意义的事情,你可能需要开始使用.jsp而不是.html
就像你说你想让servlet去装饰"页面......那不是它的工作原理。
您需要将转发的文件作为JSP,并且您将使用JSP代码,例如: JSTL,用于从servlet传递给它的请求属性。这就是你将如何装饰"这页纸。有关详情,请参阅Servlets info page。