一,Servlet的应用
• Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面。它担当Web浏览器或其他http客户程序发出请求、与http服务器上的数据库或应用程序之间交互的中间层。
• 本章主要内容:理解HTTP协议、Web应用程序开发过程、Servlet的运行原理、Servlet的生命周期等。
二,Web应用程序简介
应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。
桌面应用程序(Desktop Application):一般是指采用客户机/服务器结构(Client/Server)的应用程序。
当客户端提交请求时服务器给予响应。该模式可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,这就降低了系统的通信开销。
缺点:
(1)应用受到限制:无论是Client端还是Server端都需要特定的软件支持,客户端需要一定的软件平台的限制。
(2)不易维护:服务器端的程序和客户端的程序都需要维护,如果软件需要升级,会带来更大麻烦,尤其是不同的操作平台可能会有一些系统漏洞。
(3)不利于使用。在安装过客户端的电脑上才可以使用,不能直接调用服务器的程序。
Web应用程序(Web Application)
• Web应用程序一般是指采用浏览器和服务器结构(Browser/Server,简称B/S结构)的应用程序。
• Web应用程序由Web服务器和Web客户端组成。
– Web客户端和Web服务器之间的通信依赖于HTTP协议,该协议支持简单的请求和响应会话。客户发送一个HTTP请求,服务器会用一个HTTP响应做出应答。
– Web浏览器除了可以从本地硬盘上打开网页文档外,还可以使用HTTP网络协议从网络上的Web服务器上获取网页文档的内容。
– 当用户在浏览器地址栏中输入网址或通过超链接访问目的网站时,都向目标主机(web服务器)发送一个http请求。http定义的信息交互处理由以下4步组成:
– 请求行:有三个标记组成,即请求方法、请求url和http版本,他们用空格分隔。例如,GET /index.html HTTP1.1
– 请求头标:由关键字和值对组成,每行一对,关键字和值用冒号(:)分隔。请求头标通知服务器关于客户端的功能和识别。
– 空行:最后一个请求头标之后是一个空行,发送回车符和退行,通知服务器不再有头标。
– 请求数据:使用Post发送数据。
– 服务器接到请求后,解析请求。如果请求是静态资源,如文档、图片等,则将请求的资源返回给浏览器;如果请求是动态的服务器程序,如Servlet、JSP、ASP、CGI等,则在服务器运行程序后返回运行结果。通常的运行结果是生成的一个html文档。
– 一个响应由4个部分组成,这些部分与请求报文的部分基本相同。
三,HTTP 协议
• 如果要进入“监听”状态,需要单击“记录”按钮,监听状态如图4.4所示。
• 在浏览器的地址栏输入某个Web服务器应用的URL并按下Enter键时,浏览器就会向指定URL的Web服务器发送一个HTTP请求。
• HTTP请求
• GET请求
• 在Google的搜索栏中搜索“java”关键字的相关内容时,浏览器发送的就是HTTP GET请求。
• 用GET发送的参数数据会追加到URL后面,在浏览器地址栏中显示出来,所以发送的数据会完全暴露(不能把口令或其他敏感数据用GET请求来发送)。
• GET请求中查询字符串的长度限制在240~255个字符。
• POST请求
• 打开“www.javaeye.com”网站进行用户登录
• POST请求数据在地址栏内不可见,相对比较安全
• POST请求提交的数据在理论上没有长度的限制
注意:在我们编程时,出于对数据安全性考虑,在没有明确要求用GET方法提交数据的时候,尽可能使用POST方法。
• Java Web应用程序必须使用规范的目录结构:
– 应用程序根目录
– |-- WEB-INF目录:必须目录
– |-- web.xml:Web应用部署描述文件,必须目录
– |-- classes目录:存放字节码文件
– |-- lib目录:存放第三方类库文件
– |-- TLD文件:标签库描述文件
– |-- 其他静态文件:HTML、CSS、JavaScript、图片等
• 开发Java Web应用程序的大致流程
– 设计目录结构:根据具体业务需要,遵照规范的目录结构设计好Web应用程序的目录结构。
– 编写Web应用程序代码:编写业务逻辑所需的Java代码。
– 编写部署描述文件:把Servlet、初始化参数等定义到部署描述文件web.xml中。
– 编译代码:把编写好的Java源代码编译成字节码。
– 将Web应用程序打包:把整个Web应用程序打成War包,以方便部署。
– 部署Web应用程序:把打好的War包部署到Web服务器上。
– 执行Web应用程序:启动Web服务器,利用客户端浏览器进行访问测试。
注意:在具体的开发过程中,一般都会使用IDE工具,使用IDE工具进行Web应用程序开发时,只需要开发人员完成前三个步骤,其他步骤IDE工具可以自动完成。