Request
介绍
是从客户端向服务器发出请求(HTTP中)
一、请求体
1.获取请求内容
1.String getParameter("参数名") //获取参数值 ,值是一个
2.String[] getParameterValues("参数名") //获取参数值,值是多个
3.Map<String,String[]> getParameterMap() //获取所有的参数名值对集合
注意:ParameterMap key:参数名 value:参数值
2.请求转发
request.getRequestDispatcher("/servlet").forward(request, response);//请求转发
3.请求域对象
request对象可以作为一个作用域对象存取自定义属性数据
void setAttribute(String name, Object o) 设置自定义属性值
Object getAttribute(String name) 获取属性值
void removeAttribute(String name) 移除属性值
二、请求行
request.getMethod() //请求方式
request.getProtocol() //请求协议
request.getRequestURI() //请求的uri
request.getRequestURL() //请求url
request.getRemoteAddr() //浏览器ip地址
request.getLocalPort() //服务器端口
三、请求头
request.getHeader(String key) 获取请求头信息
例如:Referer 请求从哪个页面发起
例如:User-Agent 浏览器信息
Response
介绍
表示服务器给浏览器的响应信息
一、响应头及响应体(响应内容)
响应重定向
location:重定向
response.setHeader("location", "/day31/sd4"); //响应头location(不用)
response.setStatus(302); //响应状态码302(使用)简写:response.sendRedirect("url");//响应重定向,同上
二、响应内容
content-type: 内容类型和编码 配合响应内容使用
(不用)response.setHeader("content-type","文件的类型;charset=utf-8"); //设置响应内容类型
(使用)简写:response.setContentType("文件的类型;charset=utf-8");//同上
response.getWriter();//获取通向浏览器的字符输出流
三、响应定时刷新
refresh:定时刷新 也会有响应内容
(理解)response.setHeader(“refresh”,“秒数;url=跳转的路径”);
四、响应字节(下载文件)
response.setContentType(“application/x-download”);//类型为文件类型
response.setHeader(“Content-disposition”, "attachment;filename="new String(fileName.getBytes(“GB2312”), “ISO8859-1”));
//文件名编码处理,防止浏览器下载中文文件名乱码
response.setHeader(“Content-Disposition”,“inline; filename=”+ fileName);
//设置响应头信息,表示响应内容为内联,即在页面内显示(默认,了解)
response.getOutputStream();//获取通向浏览器的字节输出流
转发和重定向区别
1.转发:
登录失败,回到登录页面
2.重定向:
登录成功,跳转页面
提交表单
增、删、改
3.谁的方法:
转发是请求requset的方法
重定向是响应对象response的方法
4.几次请求:
转发是一个请求:
服务器中多个servelt之间转发的都是这个请求
浏览器地址栏中的地址不变
重定向是两次请求:
两次请求分别创建两个请求对象
浏览器地址会改变
5.取得资源:
转发:只能再当前项目中的servlet之间转发,("/当前项目中的servlet")
重定向:获取的是互联网任意网路资源的地址,("/tomcat根目录/…")