一、Http协议:
1)http协议: 对浏览器客户端和服务器端之间数据传输的格式规范。
2)http请求:浏览器->服务器端
格式:
请求行(请求方式(GET/POST) 请求资源(URI) http协议版本(http1.1))
请求头(键值对形式存在。 host、user-agent、referer)
一个空行
实体内容(POST提交的参数)
HttpServletRequest对象:请求对象。获取请求信息。
请求行:request.getMethod() request.getRequestURI/getRequestURL() request.getProtocol();
请求头: request.getHeader("name") request.getHeaderNames()
实体内容: request.getInputStream()
获取参数数据:(GET或POST)
request.getParameter("name") 一个值的参数
request.getParameterValues("name");多个值的参数
request.getParameterNames() 所有参数
3)http响应: 服务器->浏览器端
格式:
响应行(http协议版本 状态码 描述)
常用的状态码: 200 302 404 500
响应头( location(结合302状态码完成请求重定向功能)、 refresh(定时刷新)、content-type、 content-disiposition(以下载方式打开))
一个空行
实体内容
HttpServletResponse对象:响应对象。设置响应信息。
响应行: response.setStatus();
响应头:response.setHeader("name","value")
实体内容:
(PrintWriter)response.getWriter().writer(); 字符内容
(OutputStream)response.getOutputStream().writer(); 字节内容
二、Servlet编程
1)Servlet生命周期(重点)
构造方法:创建servlet对象。默认情况下,第一次访问servlet对象时。只调用1次。
init方法(有参):创建完servlet对象后调用。只调用1次。
注意:会调用无参的init方法。
service方法: servlet提供服务的方法。每次发出请求调用。
注意: request对象 ,response对象
destroy方法: tomcat服务器停止或web应用重新部署,servlet对象销毁,destroy方法被调用。
2)ServletConfig对象
获取servlet的初始化参数:
getInitParameter("name ");
getInitParameterNames();
3)ServletContext对象
得到web应用路径:
context.getContextPath();
request.getContextPath(); 等价于上面的代码
得到web应用参数:
context.getInitParameter("name");
context.getInitParameterNames();
域对象:
context.setAttribute("name",Object):保存数据
context.getAttribute("name") 得到数据
context.removeAttribue("name") 清除数据
转发
context.getRequestDispatcher("路径").forward(request,response);
request.getRequestDispacher("路径").forward(request,response); 等价于上面的代码
得到web应用中的资源文件
context.getRealPath("路径")
context.getResourceAsStream("路径");
三、会话管理
1)会话管理:管理浏览器和服务器之间的会话过程中产生的会话数据
2)Cookie技术: 会话数据保存在浏览器客户端。
Cookie核心的API:
2.1在服务器端创建Cookie对象
Cookeiecookie = new Cookie("name","value");
2.2把cookie发送给浏览器端(通过响应头:set-cookie)
response.addCookie(cookie);
2.3 浏览器带着cookie信息访问服务器(通过请求头:cookie),服务器得到cookie信息
Cookie[]cookies = request.getCookies();
局限:
1)只能保存字符串类型,不能保存中文
2)一个cookie不能超过4kb
3)Session技术:会话数据保存在服务器端。(内存)
Session核心的API:
3.1创建或得到session对象
HttpSessionsession = request.getSession(); //创建或得到session对象
request.getSession(false);//得到session对象
3.2会话数据保存session对象中,和得到会话数据
session.setAttribute("name",Object); 保存数据
session.getAttribute("name") 得到数据
注意:
1)session.setIntactiveInterval(时间); 设置session过期时间
2)session.invalidate() 手动销毁session对象