Servlet从抬腿到入门
1 Http
2 Tomcat
3 Servlet
3.1 javax.servlet.Servlet
3.1.1 介绍
针对Servlet技术的开发,SUN公司提供了一系列接口和类,其中最重要的接口是 javax.servlet.Servlet
在Servlet接口中定义了5个抽象方法:
- void init(ServletConfig servletConfig)
- ServletConfig getServletConfig()
- service(ServletRequest servletRequest, ServletResponse servletResponse)
- getServletInfo()
- destroy()
3.1.2 Servlet 生命周期
-
发送请求
-
解析请求
-
创建Servlet实例对象
-
调用init()方法
-
调用service()方法
-
输出响应信息
… …
end. 调用destory()方法
3.1.3 虚拟路径映射
webapp/web.xml
<servlet> <servlet-name>hello</servlet-name> <servlet-class>servletTest</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
3.1.4 多重映射
方法如下:
- 配置多个
- 在一个下配置多个
3.1.4.1 使用通配符匹配路径 “ * ”
/abc/*
*.do
… …
3.1.5 缺省Servlet
映射路径设为 “/”
当某路径在web.xml中找不到时就展示缺省Servlet
3.1.5 自动加载Servlet程序
可以通过配置 webapp/web.xml 的 下配置
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>servletTest</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
x
x必须是整数
- 是一个复数或者没有设定这个元素,首次请求再加载
- 正整数/0 Web应用启动时加载 且数越大优先级越高
3.2 GenericServlet 和 HttpServlet
3.2.1 介绍
针对Servlet接口的实现类
由上图可知 GenericServlet 实现了Servlet、ServletConfig、java.io.Serializable三个类;
HttpServlet 继承自 GenericServlet
然后我们创建一个servletTest,继承关系如下:
PS:IDEA中“Ctr+Alt+U”得到上方类图
3.2.2 HttpServlet常用方法
方法声明 | 功能描述 |
---|---|
void doGet(HttpServletRequest req, HttpServletResponse resp) | 处理GET请求 |
void doPost(HttpServletRequest req, HttpServletResponse resp) | 处理POST请求 |
void doPut(HttpServletRequest req, HttpServletResponse resp) | 处理PUT请求 |
t req, HttpServletResponse resp) | 处理POST请求 |
| void doPut(HttpServletRequest req, HttpServletResponse resp) | 处理PUT请求 |