如何使用MVC模式开发JSP / Servlets Web App?
我正在开发一个JSP / Servlet Web应用程序(没有框架)。我想使用 模式。我将像这样设计我的项目:
- :一个Servlet,它读取请求,提取值,与模型对象进行通信并将信息提供给JSP页面。
- :JSP页面。
- :Java类/ Java Beans等
Index.jsp
是我网站上的起点(默认页面)。因此,Index.jsp
成为控制器来解析请求。例如,以下请求:
index.jsp?section=article&id=10
在index.jsp中的解析如下:
<div class="midcol"><!-- Which section? -->
<%String fileName = request.getParameter("section");
if (fileName == null) {
fileName = "WEB-INF/jspf/frontpage.jsp";
} else {
fileName = "WEB-INF/jspf/" + fileName + ".jsp";
}
%>
<jsp:include page='<%= fileName%>' />
</div>
在这里,我不能强迫servlet作为控制器,因为index.jsp
这里是控制器,因为它是起点。
有什么解决方案可以将请求从转发index.jsp
到servlet,然后再返回到index.jsp
?还是实现 目标的任何解决方案-
servlet应该是控制器?
我正在考虑将 为默认页面,而不是
,但是我不知道这是否是一个完美的主意?
回答:
摆脱掉,index.jsp
只让控制器servlet监听url-
pattern感兴趣的特定对象即可。控制器本身应使用将请求转发到感兴趣的JSP页面RequestDispatcher
。
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
另外,您可以index.jsp
转发或重定向到控制器servlet覆盖的URL,该URL依次显示“默认”页面(似乎是frontpage.jsp
)。
也就是说,在正确的MVC方法中,JSP文件中不应包含 脚本
。每当您需要在JSP文件中编写一些原始Java代码,而这些代码无法被taglibs(JSTL等)或EL
合理替代时,则特定的Java代码就可以以任何方式属于真正的Java类,例如Servlet,过滤器,Javabean等。
以上是 如何使用MVC模式开发JSP / Servlets Web App? 的全部内容, 来源链接: utcz.com/qa/413311.html