-
http协议的响应: 响应行(状态行)、响应头、响应体
- 响应行:
HTTP/1.1 200 OK
- 常用状态码:200(成功)、302(重定向)、304(读缓存)、404(客户端错误)、500(服务器错误)
- 响应头:
- 常用方法:
setHeader(String key,String value)
- 常用响应头:
Refresh
(定时跳转)、Location
(重定向)、Content-Disposition
(设置文件下载时候的头)、Content-Type
(设置响应内容的MIME类型)
- 常用方法:
- 响应体:常用方法:
getOutputStream()
和getWriter();
//2.设置类型(编码) response.setContentType("text/html;charset=UTF-8"); //3.重定向 //3.1.设置响应行中的响应码 response.setStatus(302); //3.2设置响应头 response.setHeader("location","/index.html"); //3.3重定向api格式 response.sendRedirect("http://www.baidu.com"); //5秒后跳转到百度 response.setHeader("refresh","10;url=http://www.baicu.com"); //每隔5秒刷新一次 response.setHeader("refresh","5"); //通知浏览器,提供的资源需要下载 response.setHeader("content-disposition","attachment;filename=a.jpg"); //设置MIME类型(可选) String mime=getServletContext().getMimeType("a.jpg"); response.setHeader("content-type",mime); //通过getServletContext().getResourceAsStream(String var1)获得输入流 //通过ServletOutputStream out = response.getOutputStream();//获得输出流进行文件下载 //4.设置响应体 PrintWriter out=response.getWriter(); out.print("一"); out.print("二"); out.print("<br/>"); out.print("三");
- 响应行:
-
HttpServletResponse对象: 封装了向客户端发送数据、发送响应头,发送响应状态码的方法。开发人员必须学会使用HttpServletResponse,才能给浏览器发送数据
-
Servlet程序: 一个类直接或间接实现Servlet接口(Servlet接口、GenericServlet实现类、HttpServlet子实现类(常用))
-
Servlet的生命周期:
- 初始化:用户第一次访问执行
init(ServletConfig config)方法
- 活着:每次访问都会执行
service(ServletREquest req,ServletResponse res)方法
- 销毁:应用卸载
destroy()方法
Servlet是单列多线程,每一个Servlet类全局只有一个实例(执行init方法,创建出来),服务器会针对每次请求得到一个线程处理该请求
- 初始化:用户第一次访问执行
-
ServletConfig: 是Servlet的配置对象,可以使用ServletConfig来获得Servlet的初始化参数(SpringMVC中遇到)
-
servletContext: 服务器为每一个项目都创建了一个servletContext(servletContext属于整个应用)
- 获得对象:
getServletContext();
- 作用:
-
作为域对象存取数据
- 范围: 在当前应用,使多个Servlet共享数据
getAttribute(String name);
//向ServletContext对象的map取数据setAttribute(String name, Object object);
//从ServletContext对象的map中添加数据removeAttribute(String name);
//根据name去移除数据
-
获得文件mini类型(文件上传和下载)
getMimeType(String file);
-
获得全局初始化参数
- String getInitParameter(String name) ; //根据配置文件中的key得到value
-
获取web资源路径
-
String getRealPath(String path);
//根据资源名称得到资源的绝对路径.String path = getServletContext().getRealPath("/");
E:\workspaces\demo\out\artifacts\test_response_war_exploded\ -
getResourceAsStream(String path);
//返回制定路径文件的流 web文件夹为当前项目,开头加/
-
-
- 获得对象:
-
注意:
- 解决字符流输出中文乱码:response.setContentType(“text/html;charset=utf-8”);
- 中文文件在不同的浏览器中编码方式不同:火狐是Base64编码,其它浏览器是URL编码
ServletConfig和Request
最新推荐文章于 2022-04-18 10:04:50 发布