回顾:
HTTP协议
请求
方式、uri
客户端信息 Map
post参数
响应
状态码
服务器信息 Map
内容
Servlet 规范用来接收请求,返回响应
实现Servlet步骤:
1.自定义类,实现Servlet接口
2.重写service
3.去web.xml注册
<servlet>
<servlet-name>自定义名字
<servlet-class>完整类名
<servlet-mapping>
<servlet-name>一致的名字
<url-pattern>资源路径 /xx
4.访问:http://localhost:8080/应用名/资源名
Servlet生命周期:- 单例模式
init:对象创建时,初始化调用
默认第一次接收请求创建
可以修改为服务器开启时创建
<load-on-startup>n
service:每一次请求接收时调用
destroy:对象销毁 服务器关闭
request、response
类路径:WEB-INF/classes
ServletConfig:
HttpServlet 类 间接实现了 Servlet接口
实现了service方法,调用了自己的service方法
判断请求方式,调用 doGet/doPost
发送了10次请求,调用了几次init、doGet/doPost、destroy
几个request、response
1次、10次、1次、10个、10个
web02:
|- hi.html
|- hello
|- kitty.html
|- /* : / 目录下所有未匹配到的Servlet资源
/hello/* : /hello目录下面所有未匹配到的资源
/ : 只要找不到匹配的Servlet,就交给我处理
|- /hello
|- /helloTom
<!-- 方式一:完全匹配 -->
<!-- <url-pattern>/HelloServlet</url-pattern> -->
<!-- 方式二:目录匹配 - Filter/SpringMVC -->
<!-- http://localhost:8080/web02/hello/kitty.html -->
<url-pattern>/hello/*</url-pattern>
<!-- 方式三:后缀匹配 - 管理系统 -->
<!-- <url-pattern>*.html</url-pattern> -->
Servlet是接收请求的规范
结论:所有的资源都是由 Servlet 来处理的
html jpg css js jsp … .do …Servlet
有一个默认的Servlet来接收web.xml中匹配不到的资源
全局的web.xml中配置了缺省/默认的Servlet来接收其他请求
DefaultServlet
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
总结:
web02
|- a.html
|- b.jpg
|- hello/c.html
— Servlet
|- /hello
|- /a
|- *.do
localhost:8080/web02/hello -- 96
localhost:8080/web02/h -- 99
localhost:8080/web02/a.html -- 99
localhost:8080/web02/b.jpg -- 99 |- /*
localhost:8080/web02/b.jpg.do -- 98
localhost:8080/web02/a.html -- DefaultServlet[/] -> 静态资源 -- 92
localhost:8080/web02/a1.html -- default - 404
DefaultServlet -- 全局的web.xml中
ServletContext -> ApplicationContext
应用上下文:属于应用,一个应用只有一个上下文
创建:服务器开启
销毁:服务器关闭
1.获得ServletContext
config.getServletContext()
2.request.getServletContext();
小范围对象可以获得大范围对象的引用
3.servlet.getServletContext();
<context-param>
<param-name>location</param-name>
<param-value>c3p0-config.xml</param-value>
</context-param>
ServletContext 和 ServletContext域
域对象:存取数据使用 Map<String, Object>
域范围:参考生命周期
setAttribute(key, value)
value getAttribute(key)
removeAttribute(key);
HttpServletResponse -> ServletResponse
response:
响应行:状态码
响应头:服务器信息
响应体:内容
重定向:
1.发送请求,servlet接收到,执行delete操作
2.重定向 - select
3.重新回到了邮件列表 select
验证码:防止机器人攻击
tomcat编码:
ISO8859-1