Servlet与web容器的配合:
1)客户端向Web服务器发起一个HTTP请求。
2)HTTP请求被Web服务器接受,如果请求的是静态页面,则由Web服务器负责处理。如果请求的是Java Web组件(Servlet或者JSP),则移交给Web容器。Web容器可以在主 机的同一个进程、不同的进程或其他的Web服务主机的进程中启动。
3)Web容器根据Servlet的配置文件确定调用的具体Servlet类,并把request对象、response对象传给它。
4)Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息。Servlet处理完请求后把要返回的信息放入response对象返回到客户端。
5)一旦Servlet完成了请求的处理,Web容器就会刷新response,把控制权返回给web服务器。
WEB-INF很重要的文件,不可或缺,lib放网页需要用到的Java包等;
总结:
HTTP是一套计算机在网络中通信的一种规则
HTTP请求包含请求行、请求头、空行和消息体
HTTP响应包含状态行、响应头、空行和消息体
Web服务器存在缺陷
CGI程序严重消耗服务器资源,Servlet可以消除这种缺陷
Web容器给处于容器中的应用程序组件提供一个环境
一个web应用程序包括配置文件、静态文件、JSP、类文件和包
Tomcat既是一个优秀的JSP/Servlet容器,也是一个HTTP服务器
server.xml和web.xml是Tomcat主要的配置文件
welcome-file-list指示服务器在收到一个目录名而不是文件名的URL时,使用哪个文件;
服务器启动首先读取 web.xml文件;
web.xml文件的配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!-- 注册 --> <servlet> <!-- 注册名(必须唯一);一般命名为,自己书写的servlet名字 --> <servlet-name>TestHttpServlet</servlet-name> <!-- 给定书写的servlet的全类名(包名+类名) (目的是让web容器采用反射机制来创建servlet的实例) --> <servlet-class>com.lovo.servlet.TestHttpServlet</servlet-class> </servlet> <!-- 映射servlet 路径 --> <servlet-mapping> <!-- 给注册的servlet映射命名(注册,名字和映射名字一样) --> <servlet-name>TestHttpServlet</servlet-name> <!-- 映射路径,以类名命名 --> <url-pattern>/one</url-pattern> </servlet-mapping> </web-app>