Servlet第四章知识点总结——处理请求
知识点预览
1.HTTP请求信息
2.其他
1.HTTP请求信息
a) 主要内容:
i. HTTP请求提交的方法
ii. 获取HTTP请求行与请求头
iii. 获取表单数据
iv. 请求派发和请求范围
b) 网络中数据以包的形式存在(不同协议下的数据包不一样),其中从客户端发送给服务器端的数据包的格式(请求)
c) GET/POST提交方法
i. 览器向Web服务器发送HTTP请求
ii. 用户在网页上点击一个超连接
iii. 用户提交在网页上填写好的表单
iv. 用户在浏览器地址栏中输入URL地址并回车
v. 默认情况下都是使用HTTP协议的GET方法提交请求
d) GET/POST提交方法区别
e) 获取HTTP协议请求行
i. HTTP请求头用于告诉服务器客户端使用什么软件以及客户端想要服务器如何返回请求的信息
ii. HttpServletRequest对象的如下方法访问
1. getHeader(name):返回指定的请求头的值
2. getHeaders(name) :返回一个Enumeration(枚举)包含请求头中的所有值
3. getHeaderNames():特定请求中接受到的所有请求头的名称
4. getIntHeader(name):获取特定请求头的值,并将其转化为int类型
5. getMethod() 获取http的请求方法,get post
6. getContextPath():获取请求uri资源的上下文路径
7. getServletPath():获取Servlet的映射路径
f) 获取浏览器类型
/web_0401_request_line_header/src/com/test/servlet/BrowserTypeServlet.java
g) 获取请求消息体
i. 消息体可以是普通文本也可以是二进制数据
ii. HttpServletRequest对象可以使用通用的方法来获取表单数据
h) 获取表单数据
i. HttpServletRequest对象用下列方法以访问请求参数
ii. getParameter(parameterName):获取表单参数的值,参数名区分大小写,与HTML表单中出现的参数名一致,GET请求还是POST请求都可以采用相同的方式
iii. getParameterValues(parameterName):获取同一个参数名的多个参数值,返回字符串数组对象
iv. getParameterNames():以Enumeration(枚举)的方式返回请求中所有的表单参数名列表
i) 请求派发
i. 每个客户的请求可以传递给很多Servlet以及Web应用程序中的其它资源
ii. 整个过程完全是在服务器端完成
iii. 不需要任何客户端浏览器的行为
iv. 不需要在客户端浏览器和服务器端之间传递特殊信息
v. 通过javax.servlet.RequestDispatcher对象实现
通过request.getRequestDispatcher(path);
requestDispatcher对象提供了两种方法
forward(request,response);
include(request,response);
eg:request.getRequestDispatcher(“failed.html”).forward(request,response);
forward 与 include的区别,从输出内容来看
完全将控制权交给forward,不会输出本servlet的内容
只会输出forward后页面所显示的内容
Include,两个页面的内容都会输出
相同点:都是服务器跳转,显示的都是当前对应的第一个
Servlet的地址
2.其他
application:全局范围、统计
1个application里有多个session,session有多个请求,请求和session线程不安全
请求体里的属性:线程安全
request:线程安全
面试:Servlet生命周期(整个生命周期里只有一个对象)
销毁:源代码修改class文件、关闭服务器
post和get区别
cookie和session的区别
Tomcat默认编码:ISO-8859-1