既然jsp和servlet没区别,那是不是一个J2EE项目里可以不写servlet

2025-06-03 02:34:10
推荐回答(3个)
回答1:

  有区别的
  Servlet是一种在服务器端运行的Java程序,从某种意义上说,它就是服务器端的Applet。所以Servlet可以像Applet一样作为一种插件(Plugin)嵌入到Web Server中去,提供诸如HTTP、FTP等协议服务甚至用户自已定制的协议服务。而JSP是继Servlet后Sun公司推出的新技术,它是以Servlet为基础开发的,Servlet与JSP区别:
(1)编程方式不同
JSP是为了解决Servlet中相对困难的编程技术而开发的技术,因此,JSP在程序的编写方面比Servlet要容易的多,Servlet严格遵循Java语言的编程标准,而JSP则遵循脚本语言的编制标准。
(2)Servlet必须在编译以后才能执行
JSP并不需要另外进行编译,JSP Container会自动完成这一工作,而Servlet在每次修改代码之后都需要编译完才能执行。
(3)运行速度不同
由于JSP Container将JSP程序编译成Servlet的时候需要一些时间,所以JSP的运行速度比Servlet要慢一些,不过,如果JSP文件能毫无变化的重复使用,它在第一次以后的调用中运行速度就会和Servlet一样了,这是因为JSP Container接到请求以后会确认传递过来的JSP是否有改动,如果没有改动的话,将直接调用JSP编译过的Servlet类,并提供给客户端解释执行,如果JSP文件有所改变,JSP Container将重新将它编译成Servlet,然后再提交给客户端
  一个J2EE项目里可以不写servlet,但这样下来,最后的项目会非常臃肿而且也不规范。

回答2:

......

好吧 我现在告诉你他们的区别所在

首先 你用JSP主要是用来干什么? 做给用户显示的页面. 那么信息从什么地方来。 答在JSP页面调用DAO类来获取(或者是直接在JSP页面连库 真TM的恶心...)
那么 +了SERVLET的区别之后呢 你的信息就是从SERVLET里获取了

或许你认为这没有区别

可是 你直接从JSP页面获取的原始数据是不是要经过修改才能显示给客户啊 那么 你修改的过程是不是就要写到JSP页面里啊? 那么 JSP成了什么样子啊?

于是我们要用到SERVLET

SERVLET实际工作其实跟显示数据没关系(在JSP出来之后)

我们运用SERVLET主要的目的在于 提供给JSP更好的数据去显示 更加规范

你认为在JSP里写JAVA代码也没什么 反正都能实现业务逻辑

但是当你做一些比较大的东西的时候就会发现 这样做很吃力 只用一个JSP页面就要完成所有的操作 页面必然很混乱 然后呢?

你就会想到 分层 于是你就会用SERVLET了

重复:“你认为JSP页面没用 但当你的JSP页面臃肿不堪的时候 你就会想到 如果能把JAVA代码移到别的地方去显示该多好啊.....”

简单的说 加上SERVLET 是为了让程序更加容易维护 让页面代码更加整洁

再往后说我就要说到框架的出现了(不属于该题的范畴之内 但要适当的提下)

知道STRUTS的出现原因么? 很多原因 但是我只说一个原因:“为了让页面实现0 JAVA代码” 全部用标签代替 鼓掌!

好了 不明白就补充问题吧

回答3:

这里就涉及到分层的概念了,虽然jsp最终都将编译成servlet,但是还是无法取代它的,比如struts1.x中的中央控制器就是一个叫ActionServlet的servlet