Java Servlet问题

时间:2018-04-03 07:33:43

标签: java jsp servlets

我有一些关于servlet的问题:

  • 在Ruby on Rails中你使用MVC-Architecture,它是如何用servlet解决的?

  • .jsp文件和servlet有什么区别?

  • 如果我想创建一个带有表单的模型,我将该表单放在servlet或jsp文件中,或者完全不同的地方?

  • 如何更改jsp文件的URL,因为对于.jsp文件有一个类似example.com/example.jsp的URL,而对于一个servlet有一个example.com/example似乎是错误的

提前致谢

1 个答案:

答案 0 :(得分:0)

总结:

  • Servlet基本上是MVC架构中的控制器
  • JSP文件是您的视图,因为它包含您的HTML
  • 由于JSP文件包含HTML,因此表单应该转到JSP。如果这就是你需要的,你可以将表单放入你的Servlet中。
  • 您可以从Servlet中呈现JSP,或者将您的Servlet映射到web.xml,以便捕获每个请求,然后将请求转发到目标页面。

以下仅是其他人的一个例子:

web.xml

<servlet-mapping>
    <servlet-name>YOUR_SERVLET</servlet-name>
    <url-pattern>/</url-pattern>
    <url-pattern>/*.html</url-pattern>
</servlet-mapping>

然后在你的Servlet中

String includeJsp;

String query = req.getRequestURI();
if (query == null || query.isEmpty() || query.equals("/")) {
 // home - intro
 includeJsp = "/about-intro.jsp";
} else if (query.equals("/games.html")) {
 includeJsp = "/games.jsp";
} else {
  // TODO
}

// draw JSP
req.setAttribute("includeJspContent", "/pages"+includeJsp);
try {
 req.getRequestDispatcher("/index.jsp").include(req, resp);
} catch (ServletException e) {
 e.printStackTrace();
}

参考: