您可能应该看看Apache Tiles,因为它可以为您完成大部分工作。
如果要自己滚动,可以创建两个文件,分别在页面的开头和结尾处分别标头header.jsp和footer.jsp:
header.jsp
<html> <head> </head> <body> <div> //header content </div> <div> //main content
还有footer.jsp
</div> </body> </html>
并在您的内容页面中都包括在内。
另外,您可以创建一个layout.jsp页面:
<html> <head> </head> <body> <div> //header content </div> <div> <c:out value="${content}"/> </div> </body> </html>然后所有请求将填充内容变量,然后加载布局页面。这样,您不必在整个地方重复包含。
示例:在您的servlet中,您可以为变量赋一个类似这样的值:
String content = "<h1>Hello World!</h1>"; request.setAttribute("content", content); //forward to layout.jsp这样,将在layout.jsp页面上显示内容。您当然可以创建多个这样的变量占位符。
第三种选择:使用jsp:include标记包含动态内容。例如,layout.jsp页面将如下所示:
<html> <head> </head> <body> <div>//header content </div> <div><jsp:include page="${page}"/> </div> </body> </html>include标签将在给定的URL处获取页面。使用此建议的原因是,当您拥有更复杂的显示时,最好使用JSP页面来构造显示。然后,该servlet将仅与业务逻辑有关。您可以为每个显示创建一个单独的jsp页面。该servlet如下所示:
//business logic //save the data to be displayed in the request String page = "nextpagetodisplay.jsp"; request.setAttribute("page", page); //forward to layout.jsp


