# Servlet
A)继承体系
B)配置方式
xml
基本使用步骤
1.创建类实现Servlet接口
2.实现方法,在service方法中实现业务逻辑
3.在web.xml中配置servlet
<servlet>
<servlet-name>demo
<servlet-class>com.itheima.web.DemoServlet
<servlet-mapping>
<servlet-name>demo
<url-pattern>/hello
注解
1.创建类实现Servlet接口,配置@WebServlet("/hello")
2.实现方法,在service方法中实现业务逻辑
C)生命周期
init(),service,destory()
D)线程安全问题如何解决
E)servlet创建时间
servlet创建时机
1/默认第一次访问时创建
2/配置servlet开启服务器时自动创建
<load-on-startup>设置为0或者正整数时
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>com.itheima.web.DemoServlet</servlet-class>
------------------------
<load-on-startup>1</load-on-startup>
------------------------
</servlet>
F)Servlet原理
1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。
3. 如果有,则在找到对应的<servlet-class>全类名
4. tomcat会将字节码文件加载进内存,并且创建其对象
5. 调用其方法
# request
a.原理
一次访问到了tomcat,tomcat对访问创建request,response对象,传给servlet的service方法中
b.作用
1.获取请求参数
请求行 4
获取请求方式:getMethod()
获取虚拟目录:getContextPath()
获取uri:getRequestURI()
获取url:getRequestURL()
请求头 1
获取请求头:getHeader()
请求参数 3
getParameter()
getParameterMap()
getParameterValues()
2.请求转发 1
getRequestDispatcher().forward(request,response)
请求转发的特点
1.浏览器地址栏不会发生变化
2.只能转发到当前服务器内部资源中
3.转发是一次请求
3.作为域对象进行数据共享 3
4.获取ServletContext 1
c.请求的协议格式
d.请求头
content-type 提交数据的格式
user-agent 判断版本
referer(http://localhost/login.html)
告诉服务器,我(当前请求)从哪来
作用:防盗链
e.解决中文乱码问题
get tomcat8之前
post request.setCharacterEncoding("utf-8")
# response
a.原理
b.作用
1.回写数据
response.getWriter().write()
response.getOutputStream().write()
2.重定向页面跳转
response.sendRedirect()
重定向的特点
1. 地址栏发生变化
2.重定向可以访问其他站点(服务器)的资源
3. 重定向是两次请求。不能使用request对象来共享数据
3.响应的协议格式
4.响应头
Content-Type 设置数据格式同时设置编码集
Content-Disposition 下载
c.解决响应乱码
response.setContentType("text/html;charset=utf8")
# ServletContext
a.域对象进行数据共享
b.获取文件的服务器路径
web目录 /b.txt
web目录下/WEB-INF /WEB-INF/b.txt
web目录下/WEB-INF/classes /WEB-INF/classes/b.txt
c.根据文件后缀名获取mime类型
String s= context.getMimeType(String file);
d.文件下载
1. 定义页面,编辑超链接href属性,指向Servlet,传递资源名称filename
2. 定义Servlet
1. 获取文件名称
2. 使用字节输入流加载文件进内存
3. 指定response的响应头: content-type:attachment;filename=xxx
4. 将数据写出到response输出流
# Cookie
1.原理
2.API
获取
request.getCookies()
cookie.getName()
cookie.getValue()
发送
new Cookie("key","value")
c.setValue()
c.setMaxAge()
c.setPath()
c.setDomian()
response.addCookie(c)
3.cookie特点
# Session
1.原理
2.API
作为域对象进行数据共享
request.getSession();
3.session特点
4.session的销毁
# JSP
a.原理
b.脚本
c.指令
d.9大内置对象
# EL
判断
取值
基本类型
对象
javabean的get/set方法 -> 属性
属性和成员变量的区别
# JSTL
引入
<c:if
<c:forEach
# Filter
入门
xml
注解
原理
生命周期
拦截方式
顺序
# Listener
概念
|
|