在index.jsp加载之前调用控制器

时间:2012-05-09 10:08:21

标签: java html jsp

我在JSP方面相当新,我需要一些帮助。

我有一个index.jsp文件,显然如果你键入" localhost //",它默认会自动调用index.jsp。我想知道这是如何工作的,因为我打算在index.jsp加载之前先调用一个控制器。

我试着解决它。在我的index.jsp中,我把它放在那里:

 if(request.getParameter("submit") == null && 
    request.getAttribute("submit") == null){
    response.sendRedirect("getInformation"); 
 }

在这里,我强迫index.jsp直接调用我的控制器/ servlet。 (我使用@WebServlet(" / getInformation"在我想调用的控制器上)。

我想知道是否有更好的方法可以做到这一点,因为我希望我的控制器/ servlet上的所有逻辑代码和.jsp中的所有html代码尽可能多。

1 个答案:

答案 0 :(得分:1)

IMO,这是最好的方法。您可以在web.xml中定义欢迎文件。在下面的示例中创建一个'stupid'index.html设置META标记重定向到您的控制器SomeController(将一些计算从服务器委托给客户端):

<强>的web.xml

<welcome-file-list>
  <welcome-file>/WEB-INF/jsp/index.html</welcome-file>
</welcome-file-list>

<强>的index.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="refresh" content="0; URL=./SomeController" />
<title>Some title</title>
</head>
<body>
If you are not automatically redirected please click <a href="./SomeController">here</a>.
</body>
</html>