如何使用MVC模式开发JSP / Servlets Web App?

我正在开发一个JSP / Servlet Web应用程序(没有框架)。我想使用 模式。我将像这样设计我的项目:

  1. :一个Servlet,它读取请求,提取值,与模型对象进行通信并将信息提供给JSP页面。
  2. :JSP页面。
  3. :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

回到顶部