使用特定的servlet在页面加载时加载动态.jsp页面

时间:2015-02-25 10:46:13

标签: java jsp servlets pageload

我想创建一个要在pageload上加载的.jsp页面,但是通过调用我的本地数据库动态创建页面内容。

我的问题是。当用户请求index.jsp页面时,我该怎么说“说”。 在显示index.jsp页面之前,调用servletX获取内容,并将此返回发送到index.jsp页面?

我将jsp和servlet映射到一起如下

<servlet>
    <servlet-name>intname</servlet-name>
    <servlet-class>ServletBooks</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>intname</servlet-name>
    <url-pattern>/index.jsp</url-pattern>
</servlet-mapping>

但是我不知道我是如何派遣这个人回到自我身边的? getServletContext()。getRequestDispatcher( ??? )。forward(request,response);

编辑。 好吧,现在网站的工作原理如下。 我请求index.jsp页面,该页面在web.xml中映射到servlet。 但是如果我将requestDispatcher设置为index.jsp页面,则整个站点都会挂起。如果我将它设置为像result1.jsp这样的另一个页面,它可以正常工作。执行它不是显示内容的索引页面。

如何对servlet说,将输出发送给启动器?

1 个答案:

答案 0 :(得分:2)

  

但是如果我将requestDispatcher设置为index.jsp页面,那么整个   网站挂起。如果我将它设置为像result1.jsp这样的另一个页面,它就可以了   细

是的,因为它显然会进入无限循环,因为index.jsp映射到您要转发的Servlet。

您需要查看ModelViewController模式。基本上你从不允许直接访问JSP但是通过控制器路由,在你的情况下是一个简单的Servlet,它将加载视图所需的任何数据,然后分派到视图进行渲染。

<servlet>
    <servlet-name>intname</servlet-name>
    <servlet-class>ServletBooks</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>intname</servlet-name>
    <url-pattern>/loadBooks.do</url-pattern>
</servlet-mapping>

<!-- If you are on Tomcat set a Default page if root of webapp requested -->
<welcome-file-list>
    <welcome-file>loadBooks.do</welcome-file>
</welcome-file-list>

在servlet中加载数据,然后转发到index.jsp。

http://www.thejavageek.com/2013/08/11/mvc-architecture-with-servlets-and-jsp/