我对JSP和Servlets以及所有爵士乐都很陌生,而且我对如何处理它感到困惑。
现在我的主要困惑如下:
似乎有两种方法可以让网页在Java EE / JSP项目中显示在屏幕上:
.jsp
的HTML页面,并在web.xml
文件中,将其映射到网址格式(让我们假设/
)doGET()
方法以返回HTML
代码字符串并映射到web.xml
中的此Java类。 我的JSP项目需要大量的Java代码来执行逻辑和登录/注销操作。我已经读到了在JSP页面中包含Java代码的不良做法,因为它变得无法重用,难以跟踪,混乱等等。我想在Java中包含大量代码,这会感觉到对我来说更自然。
我应该如何构建我的项目(假设它是一个简单的初学者项目,我想在其中使用最佳实践进行组织,测试等以准备构建更大的项目)?如何从Java类中干净地部署Web页面,而不是让许多JSP页面包含多少Java代码?
答案 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 MVC和Struts。或者,您可以将您的servlet用于所有逻辑,然后手动将请求转发到JSP进行处理:
request.getRequestDispatcher("/index.jsp").forward(request,response);
答案 2 :(得分:0)
如果您正在寻找从演示文稿中清除Java代码的最佳实践,那么您最好使用MVC框架(Spring MVC或Struts是众所周知的示例)来帮助您清晰地分离:
可能很难开始,但你会通过官方网站和谷歌找到很好的教程。
如果您只想使用servlet和JSP,通常的规则是在servlet中包含所有逻辑和Java代码,并且这些servlet只是转发到将执行视图部分的JSP页面。然后,使用请求属性(当然还有会话和应用程序上下文属性)来完成之间的通信。
祝你好运......答案 3 :(得分:0)
要管理一些java代码,可以使用Scriptlet。
在其他答案中也提到,您可以使用jsp:forward
或response.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模式,它有助于分离网站的所有核心功能,并且可以轻松扩展和管理。
您是否有任何代码可以显示您目前所做的事情?