重点
get 和 post 请求方式的区别:
服务器跳转和客户端跳转的区别
3.cookie和session
cookie常用方法
1.Cookie cookie = new Cookie(“key”,“value”) 创建cookieresponse.addCookie(cookie) 必须要add才能生效
2.request.getCookies() 读取cookie
3.void setMaxAge(int age) 设置cookie有效时间,单位为秒
4.void getMaxAge() 获取cookie的有效时间
5.String getName() 获取名字
6.String getValue() 获取值
session 会话, 调用API方法,主动销毁Session
session 常用方法
两者区别
4.Request和Response
request对象用来获取请求消息,response对象用来设置响应消息。
Request
1、获取请求参数通用方式:不论get还是post都可以
(1)String getParamter(String name)
(2)String[] getParamterValues(String name)
(3)getParamterNames()
(4)Map<String,String[]> getParamterMap
(5) tip:获取参数前,设置编码request.setCharacterEncoding(“utf-8”);
2、请求转发:一种在服务器内部的url跳转方式
(1)步骤
①通过request对象获取请求转发器对象
②使用 进行转发:forward ( )request.getRequestDispatcher(转发资源路径).forward(request,response);
(2)特点①浏览器地址栏路径不发生变化②只能转发到当前服务器内部资源中③转发是一次请求
3、共享数据
域对象:一个有作用范围的对象,在范围内共享数据
request域:代表一次请求的范围,用于请求转发的多个资源中
共享数据方法:
(1)setAttribute():存储数据
(2)getAttribute():获取
(3)removeAttribute():移除
4、获取ServletContext
ServletContext servletContext = request.getServletContext();
Response
Response对象功能:定义响应行、头、体。
1.设置响应行
格式:http/1.1 200 ok void setStatus(int sc) :设置状态码。
2.设置响应头
setHeader(String name, String value)
3.设置响应体
1.获取输出流。
1.字节输出流 PrintWriter getWriter()
2.字节输出流 ServletOutputStream()
2.使用流输出。
4.重定向
1.response.setStatus(302); response.setHeader("location","/");
2.sendRedirect("location")
5.路径
1.相对路径:以.开头 ./resource ./可省略 ../上一级目录
2.绝对路径: 以/开头的目录。
发送给浏览器使用需要加虚拟目录 <a> <form> 重定向 服务器使用不需要虚拟目录 请求转发
6.服务器输出
1.字符输出 PrintWriter pw = response.getWriter() 默认编码:ISO 8859-1
乱码问题: response.setContentType("text/html;charset=utf-8");
1.字节输出 ServletOutputStream sos = response.getOutputStream();
7.ServletContext对象
代表整个Web应用,可以和程序容器通信 获取: ServletContext context1 = request.getServletContext(); ServletContext context2 = this.getServletContext(); 功能: 1.获取MIME类型: 格式:大类型/小类型 text/html image/jpeg
String filenmae = "a.jpg";
String MimeType = context.getMimeType(filenmae);
2.域对象:共享数据
1.setAttribute(String name,Object value)
2.getAttribute(String name)
3.removeAttribute(String name) 范围:所有用户请求的数据
3.获取文件的服务器路径 String getRealPath("")
5.过滤器和监听器和拦截器
a.过滤器的写法
public void doFilter(ServletRequest request , ServletResponse response , FilterChain chain)
{
//处理 request chain.doFilter(request, response); //处理 response
}