Response内置对象
Request 内置对象主要用来处理用户的请求, 处理对用户的响应,需要使用内置对象的类型是
"javax.servlet.http.HttpServletResponse", 对象名 : response, 在调用 service 方法的时候容器会传递过来
Response的方法:
public void addCookie(Cookie cookie)
向客户端添加一个 cookie 信息到客户端浏览器
publlic void send Redirect(java.lang.String location)
该方法可以实现客户端跳转, 客户端跳转最大的特征是:
1.浏览器地址栏信息改变
2.重新想服务器发送一个新的请求
public java.ioPrinWriter getWriter( )
获取一个向客户端输出信息的打印流对象, 可以使用该对象实现信息的输出
public void setContentType(java.lang.String type)
可以设置响应的 MIME 类型和字符编码
MIME :
MIME 是设定某种扩展名的文件用一种应用程序来打开的方式类型, 当扩展名文件被访问的时候,
浏览器会自动使用指定应用程序来打开, MIME 类型-在把输出结果传送到浏览器上的时候,
浏览器必须启动适当的应用程序来处理这个输出的信息,
超文本标记语言文本 text/html
普通文本 .txt text/plain
RTF 文本 .rtf application/rtf
GIF 图形 .gif image/gif
JPEG 图形 .jpeg.jpg image/jpeg
GZIP 文件 .gz application/x-gzip
TAR 文件 .tar application/x-tar
Excel 文件 application/vnd.ms-excel
ex:
假设要传入一个 Microsoft Excel文件到客户端, MIME类型就是 "application/vnd.ms-excel".
大部分情况, 在 JSP 中, 设定 MIME 类型的方法是通过 Response 对象的 setContentType( )方法.
Demo: 向客户端输出信息
1 @SuppressWarnings("serial") 2 public class EmpServlet extends HttpServlet { 3 @Override 4 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 5 //设置响应的编码 6 resp.setContentType("text/html;charset=utf-8"); 7 //获取打印流对象 8 PrintWriter out = resp.getWriter(); 9 //输出信息 10 out.print("你好,我是服务器输出的信息"); 11 //关闭流 12 out.close(); 13 } 14 }
Demo: 创建自己的 cookie
如果添加的 cookie 的名称相同则后面的 cookie 覆盖前面的 cookie.
1 @SuppressWarnings("serial") 2 public class EmpServlet extends HttpServlet { 3 @Override 4 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 5 //创建 Cookie 信息 6 Cookie c1 = new Cookie("c1", "1234"); 7 Cookie c2 = new Cookie("c2", "abcd"); 8 //把 cookie 保存到浏览器 9 resp.addCookie(c1); 10 resp.addCookie(c2); 11 } 12 }
Demo: 在服务器端获取 cookie 信息
后面访问服务器的时候会带上 cookie 信息到服务端, 就可以在服务器端取得 cookie 信息
cookie 保存的时间默认情况是浏览器关闭就没了
1 @SuppressWarnings("serial") 2 public class EmpServlet extends HttpServlet { 3 @Override 4 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 5 //获取 Cookie 信息 6 Cookie [] cs = req.getCookies(); 7 for (Cookie c : cs) { 8 System.out.println(c.getName() + ":" + c.getValue()); 9 } 10 } 11 }
Demo: 设置 cookie 的存活时间
此方法经常不成功.....
1 @SuppressWarnings("serial") 2 public class EmpServlet extends HttpServlet { 3 @Override 4 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 5 //创建 Cookie 对象 6 Cookie c1 = new Cookie("c1", "1234"); 7 //设置存活时间, 以秒为单位 8 c1.setMaxAge(60*60*24); 9 10 Cookie c2 = new Cookie("c2", "abcd"); 11 //把 cookie 保存到浏览器 12 resp.addCookie(c1); 13 resp.addCookie(c2); 14 } 15 }