我想创建一个要在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说,将输出发送给启动器?
答案 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/