为什么是servlet

    技术2024-08-10  66

    j2ee全名java Enterprise Edition 。就是java的企业应用版本,能够快速的开发基于网络的企业应用系统。

     

    在学习j2ee之前,有必要了解一下如何进行网络应用程序(web application)的开发。它基本的结构应该分为两部分:服务器端(应用服务器程序apache等和应用服务器上运行的程序)和客户端(通常是浏览器,或者是applet等),客户端发送请求给服务器端,服务器端进行响应返回给客户端进行显示。要达到这个目的就需要解决两个问题:客户端和服务器之间怎么样交谈,客户端如何展示发送过来的信息。还好通过统一的规范和协议我们已经不必担心这个问题,现在的做法是:

    客户端和服务器使用HTTP协议进行通讯。客户端通过HTTP把HTML发送给客户端。客户端根据HTML进行内容展示。

    HTML

    扩展标记语言。使用标签和属性的方式描述了页面应该怎样显示传输过来的内容。

    HTTP

    超文本传输协议。运行于TCP/IP协议之上,-。-!又得了解下TCP/IP协议了。

    TCP负责把数据拆分成包,然后再目的地正确的还原。

    IP是底层协议,负责把包正确的运往目的地。

    HTTP就是基于TCP/IP协议的,就是能够把request正确的发送到服务器,然后把response正确的返回到客户端的协议。

     

    又有新概念了,没办法,基础的东西必须知道啊

    request

    在客户端和服务器通讯的时候会产生两个对象,request和response。其中request负责承载请求,其主要元素为三个,方法method。url要访问的地址和交单的数据data。

    request的快照:

    Method root/test.jsp?color=dark HTTP/1.1               Method包括了get,post,hidden等多个方法,一般get和post就够用了

    Host:www.prince.com                       -|

    ......                                                     | request head

    Accept-Charset:gbk                          -|

    color=dark                      如果是post方法则还会包含体的部分,用来存放表单中的数据

    request通常用于获取数据内容,包括pdf,图片等等。

    可以在url中使用&传输一些简单的数据,但是数据的长度是有限制的。

    字符集是受限制的,因此会有乱码的问题。

    response

    response快照:

                                  |-HTTP /1.1 200 OK                                                                  版本和状态 200是正常,400是页面未找到

    response header   | Set-Cookie:JSESSIONID=1123123123123;Path=/testEL      Cookie

                                  | Content-Type:text/html                                       MIME type。告诉浏览器数据的类型和怎样展示数据

    body           html文本                              html文本在这里,是在浏览器中进行显示的

     

    url

    request还包括了url用来指定要访问的资源。

    url的格式为:http://www.prince.com:80/site/index.html

    http:// 知道那个了所使用的协议www.prince.com是域名,可以通过域名解析服务解析成网络上唯一的ip地址。80为端口,一台计算机上默认0-1023都是预留或者已经使用的,我们自定义的时候只能使用其他的端口,比如80是HTTP,21是ftp的

    到现在为止,我们已经可以比较清楚的描述完成一个网络应用程序所必须的技术了。

    在浏览器中输入url,然后通过HTTP发送request给服务器端,服务器端再把HTML保存在response中进行相应。而我们程序中所需要开发的内容就是部署在服务器上的程序,完成接收request并进行相应的功能。通常我们把层序放在服务器程序如(apache)指定的目录中就能够自动识别为一个网站了。

     

    但是,但是啊,仅仅是静态页面是不能够满足要求的,这就需要在web server之外添加另外的支持,解决这个问题早期的实现方式是CGI程序。

    CGI

    通用网关接口,通常使用Prel或者是C写成,可以在web server接收请求后通过CGI进行处理,然后生成对应的页面,返回给浏览器。

    不过他是进程的,比较费资源。

    后来我们有了servlet

    servlet

    跟cgi的功能差不多,除了web server需要运行在额外的j2ee server之上,不过其能够充分使用java语言的优点,具有跨平台的特性,另外与cgi相比,其是线程的,每个请求一个线程,比cgi更加的轻量级。

     

    最新回复(0)