Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。
一、HttpServletResponse
响应行
response.setStatus() 设置响应状态码
响应头
response.setHeader()
//不使用缓存
response.setHeader("pragma","no-cache");
response.setHeader("cache-control","no-cache");
response.setHeader("expires","0");
//刷新
response.setHeader("refresh","3;url=...");
//告诉浏览器下载文件
//fileName = URLEncoder.encode(fileName,"UTF-8");
fileName = new String(fileName.getBytes("UTF-8"),"ISO_8859_1");
response.setHeader("content-disposition","attachment;filename="+fileName);
response.setHeader("content-type","image/jpeg");
//重定向
response.setStatus(302); //告诉客户端要重新定向新的资源
response.setHeader("location","url..."); //告诉浏览器要去访问哪个URL
response.sendRedirect("url..."); //相当于以上两个
响应正文
response.setCharacterEncoding("UTF-8"); //告诉服务器使用什么编码
response.setHeader("content-type","text/html;charset=utf-8"); //告诉浏览器使用什么编码
response.setContentType("text/html;charset=UTF-8"); //相当于以上两个
response.getWriter().write("你好"); //字符流
response.getOutputStream().write("你好".getBytes()); //字节流
二、HttpServletRequest
请求行
getMethod(); //获得请求方式
***getRequestURL();//返回客户端发出请求时的完整URL。
***getRequestURI(); //返回请求行中的资源名部分。
*****getContextPath();//当前应用的虚拟目录 /项目名
getQueryString() ; //返回请求行中的参数部分 username=zs
请求消息头
* String getHeader(String name) 根据头名称得到头信息值
Enumeration getHeaderNames() 得到所有头信息name
Enumeration getHeaders(String name) 根据头名称得到相同名称头信息值
请求正文
*** getParameter(name) 根据表单中name属性的名,获取value属性的值方法
*** getParameterValues(String name)专业为复选框取取提供的方法
getParameterNames() 得到表单提交的所有name的名字
*** getParameterMap 到表单提交的所有值的方法 //做框架用,非常实用
getInputStream // 以字节流的方式得到所有表单数据 上传文件时使用
Request域对象
*** void setAttribute(String name, Object value);
*** Object getAttribute(String name);
Void removeAttribute(String name);
转发
getRequestDispatcher(String path)
*** forward(request,response) //转发的方法
编码相关
****request.setCharacterEncoding("UTF-8"); //告诉服务器客户端什么编码,只能处理post请求方式
String name = new String(name.getBytes(“iso-8859-1”),”UTF-8”);
转发与重定向的区别:
本文详细介绍了HTTP请求与响应的工作原理,包括如何通过HttpServletRequest和HttpServletResponse处理请求与响应。涵盖了请求与响应对象的创建、使用方法及转发与重定向的区别。
1万+

被折叠的 条评论
为什么被折叠?



