Servlet是服务器小应用程序(http/ftp等) ,用来完成B/S架构下客户端请求的响应处理 。平台独立,性能优良,能以线程方式运行 ,Servlet API为Servlet提供了统一的编程接口。
Servlet一般在容器中运行,常见的Servlet容器:
Tomcat (其下载、安装和运行请参考视频文件) Jetty / Resin
一.背景知识
1.常用的Web服务器
·IIS 应用服务器
·Apache web服务器(处理静态页面)
·Tomcat JSP/Servlet容器
2.通常的动态网页技术
·CGI (Common GateWay Interface)
·API常用的有(NSAPI,ISAPI)
·ASP(Active Server Page)
·PHP(Personal Home Page)
·JSP/Servlet (Java Server Page)
二.tomcat
1.tomcat目录结构
·bin: 存放各种平台下启动和关闭Tomcat的脚本文件。
·startup.bat是windows下启动tomcat的文件,
·shutdown.bat是关闭tomcat的文件。
·common: 在common目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR。
·shared: 在shared目录下的lib目录,存放所有web应用能访问的,但Tomcat不能访问的JAR。
·server: 在server/webapps目录中,存放Tomcat自带的两个APP-admin和manager应用,来管理Tomcat-web服务用的。
·work : Tomcat把各种由jsp生成的servlet文件放在这个目录下。
·temp : 临时活页夹,Tomcat运行时候存放临时文件用的。
·logs : 存放Tomcat的日志文件
·webapps: web应用的发布目录,把 java开发的web站点或war文件放入这个目录下就可以通过tomcat服务器访问了。
·conf : Tomcat的各种配置文件,最重要的是 server.xml.
2.tomcat启动与停止
·startup shutdown
·catalina start catalina stop
·catalina debug 调试错误的时候
·run exit help
·设置环境变量JAVA_HOME
·shutdown.batà小心使用
3.Tomcat配置文件
·conf/server.xml
服务器的主配置文件
·conf/web.xml
定义所有Web应用的配置
·缺省的Servlet定义和MIME类型定义
·conf/tomcat-user.xml
定义了tomcat用户的信息(用于权限与安全)
4.conf/server.xml
·顶层类元素: 位于整个配置文件的顶层, <Server>;
·连接器类元素[Connectors ]: 客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果;<Connector>
·容器类元素[Containers]: 处理客户请求并且生成响应结果,包含3个:<Engine> <Host> <Context>
·嵌套类元素[Nested Components]: 可以加入到容器中的元素,包括:<logger> <Valve><Realm>等
·一个<Server>包含一个或多个<Service>,一个<Service>包含唯一一个< Engine>和一个或多个<Connector>,多个 <Connector>共享一个<Engine>;一个<Engine>包含多个<Host>,每个 <Host>定义一个虚拟主机,包含一个或多个web应用<Context>; <Context>元素是代表一个在虚拟主机上运行的Web应用。
·Please note that for tomcat 5.x, unlike tomcat 4.x, it is NOT recommended to place <Context> elements directly in the server.xml file. Instead, put them in the META-INF/context.xml directory of your WAR file or the conf directory as described above.
5.什么是MIME
·Multipurpos Internet Mail Extension
·指明白传送内容的格式
·最早用于邮件附件
·传递文件的头信息
·MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
三.HTTP协议
1.HTTP协议基础:客户端请求
·GET /latest.html HTTP/1.1
Host: www.foo.com
Content-Type: text/html
…
{空行}
·POST /servlet/serv HTTP/1.1
Host: www.foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 32
username=billgates&password=hehe
·HTTP/1.1 200 OK ---服务器响应
Date: Fri,31 Dec 2003 10:23:34 GMT
Content-Type: text/html
Content-length: 280
<html>
……
</html>
四.Web Application的概念
1·Web Application Name
·WEB-INF 静态文件直接放在这,就可访问
··web.xml
该web app的配置文件
··lib
该web app用到的库文件
··classes
存放编译好的servlet
·META-INF
··存放该web app的上下文信息,符合J2EE标准
2·Web Application可以直接放在webapp下面,也可以通过配置文件指定到其他目录 <host>里面
<Context path=“/虚拟路径名“ docBase=”目录位置" debug="0" reloadable="true"/>