以编程方式显示Servlet类的Web页面

时间:2014-08-29 18:16:10

标签: java jsp servlets

我对JSP和Servlets以及所有爵士乐都很陌生,而且我对如何处理它感到困惑。

现在我的主要困惑如下:

似乎有两种方法可以让网页在Java EE / JSP项目中显示在屏幕上:

  1. 创建一个扩展名为.jsp的HTML页面,并在web.xml文件中,将其映射到网址格式(让我们假设/
  2. 创建一个扩展Servlet的Java类,覆盖doGET()方法以返回HTML代码字符串并映射到web.xml中的此Java类。
  3. 我的JSP项目需要大量的Java代码来执行逻辑和登录/注销操作。我已经读到了在JSP页面中包含Java代码的不良做法,因为它变得无法重用,难以跟踪,混乱等等。我想在Java中包含大量代码,这会感觉到对我来说更自然。

    我应该如何构建我的项目(假设它是一个简单的初学者项目,我想在其中使用最佳实践进行组织,测试等以准备构建更大的项目)?如何从Java类中干净地部署Web页面,而不是让许多JSP页面包含多少Java代码?

5 个答案:

答案 0 :(得分:1)

我过去使用的模式是:

1)编写servlet以执行任何必要的逻辑,并构造合理数量的可序列化java对象,以保存您希望通过HTML呈现的所有数据。

2)servlet将这些对象存储到HTTP请求中,并将请求和响应对象转发到JSP:

request.getRequestDispatcher("/some.jsp").forward(request, response);

3)JSP可以访问请求中的java对象,并将数据与静态HTML合并以完成请求。

答案 1 :(得分:0)

这正是MVC模式解决的问题。

您在Controller中执行所有复杂逻辑(简单Java类或Servlet),然后将数据传递给View(JSP,Velocity,Freemarker,任何可以处理数据并制作HTML的东西)。

最受欢迎的MVC for Java的几种实现是Spring MVCStruts。或者,您可以将您的servlet用于所有逻辑,然后手动将请求转发到JSP进行处理:

request.getRequestDispatcher("/index.jsp").forward(request,response);

答案 2 :(得分:0)

如果您正在寻找从演示文稿中清除Java代码的最佳实践,那么您最好使用MVC框架(Spring MVC或Struts是众所周知的示例)来帮助您清晰地分离:

  • 查看图层(JSP)
  • 控制器层
  • 服务层
  • 域对象
  • 持久层

可能很难开始,但你会通过官方网站和谷歌找到很好的教程。

如果您只想使用servlet和JSP,通常的规则是在servlet中包含所有逻辑和Java代码,并且这些servlet只是转发到将执行视图部分的JSP页面。然后,使用请求属性(当然还有会话和应用程序上下文属性)来完成之间的通信。

祝你好运......

答案 3 :(得分:0)

要管理一些java代码,可以使用Scriptlet

在其他答案中也提到,您可以使用jsp:forwardresponse.sendRedirect 调用网页。

另见What is the difference between jsp:forward and response.sendRedirect

答案 4 :(得分:0)

我不确定您在哪里听到将HTML代码包含在HTML(JSP)文件中的不良做法,但为了拥有一个动态数据驱动的网站,Java就是您在HTML中使用的(JSP) )。请记住,所有前端设计都将使用JSP在HTML中,并且所有用于处理请求和重定向器以及传递数据的逻辑都将使用Java在servlet中进行管理。

您的servlet可以将数据(无论是从数据库还是其他数据源)传递到前端,而JSP只会帮助显示该数据。它之所以被称为JSP是有原因的。您可以在其中编写Java。

使用Java设计网站的最佳方法是使用MVC模式,它有助于分离网站的所有核心功能,并且可以轻松扩展和管理。

您是否有任何代码可以显示您目前所做的事情?