jsp和servlet和struts2

                                      jsp和servlet和struts2

jsp依赖于servlet

jsp:一种动态网页技术,全称JavaServer Pages,是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。由于它运行在服务器端,所以它是服务器语言。在mvc中充当视图部分。

例如:当客户端发出请求访问http;//......index.jsp时,1.服务器会找到服务器端对应的jsp文件,2.把它先翻译成java文件,再编译成字节码文件,3.然后执行该文件,把执行的结果(生成html文件)页面返回到客户端显示。注意:1,2,3,都是在服务器端执行的。

而jsp文件是通过在html中嵌入java脚本文件来响应页面动态请求的。

后来人们觉得把显示业务逻辑代码和Bean模式代码以及视图放在一起,太繁杂和不方便。所以创造出来model1,后来又创造出来MVC模式,MVC模式中把服务器执行的东西分为三部分。视图部分,bean模型部分和逻辑控制部分(主要来处理数据,生成新的数据。)通过他们三个之间的相互作用,来生成最终结果,来回复客户端的请求。

到这里我产生了一个疑问,那我们平时说到前端,后台怎么划分?因为现在视图也是放在后台,所以前端与这里的视图部分,有什么区别?它的前端难道是指服务器的jsp文件?还是指最终生成的结果。

servlet:Java Servlet 是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类。就是指在服务器端,只要该服务器有Java Servlet 规范的解释器,那么服务器端存在的java代码就都可以被称作servlet。

servlet的任务:

  • 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
  • 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
  • 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。 

jsp(不是单纯只服务器端的那个jsp文件)相当于在servlet之上增加了一个过程(jsp文件变为servlet到过程)所以我们说jsp依赖于servlet。

struts2:一个MVC开发框架,用来简化网站开发的代码冗余和复杂性。它只是一个框架。它不会改变网站的组成。它只不过是封装了MVC中的一些冗余代码。它的实质依旧是客户端发出请求,服务器接收后,提交给相应的组件,然后进行数据处理,最后生成用来答复客户请求的html文件。只不过struts2当服务器接收到请求后,先发给核心过滤器),然后到struts.xml文件中匹配相应的actin,执行后返回action的返回值(字符串)再匹配struts.xml配置文件找出相应的匹配页面。

struts2不依赖于servlet。它实现了与servlet的解耦。但是我们在struts2中依然可以调用servlet。struts2提供了自己的方法,来实现servlet的功能,正是由于这个功能才实现了与servlet的解耦。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章