阅读 475

JSP入门——response对象(response对象的方法有哪些)

前言

大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。复制代码

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

本文主要介绍JSP脚本中的9个内置对象中的response对象。复制代码

1. reponse对象

先前我们已经说了Web应用是请求和响应的架构,前面我们已经说了请求(request),本篇我们来说一说响应(response).

response是HttpServletResponse的实例,主要用于向客户端发送非字符文件(图片,音频等),重定向和增加Cookie。

1.1 向客户端发送非字符文件

通常我们会使用out对象来输出内容,但是对于非字符文件out对象就无能为力了。这时我们就要借助response对象。

response中有一个方法:ServletOutputStream getOutputStream()方法,该方法返回客户端的输出流对象。

实例展示:

<%@ page import="java.awt.image.BufferedImage" %>
<%@ page import="java.awt.*" %>
<%@ page import="javax.imageio.ImageIO" %>
<%@ page contentType="image/png" language="java" pageEncoding="UTF-8" errorPage="ErrorHandlePage.jsp" %>
<!DOCTYPE html>
<html>
<head>
  <title>JSP - Hello World</title>
</head>
<body>
<%
  BufferedImage bufferedImage = new BufferedImage(340, 160, BufferedImage.TYPE_INT_RGB);
  Graphics graphics = bufferedImage.getGraphics();
  graphics.fillRect(0,0,400,200);
  graphics.setColor(Color.BLUE);
  graphics.drawString("dsajfkhasjf",50,50);
  graphics.dispose();
  ImageIO.write(bufferedImage,"png",response.getOutputStream());
%>

</body>
</html>复制代码

image-20211129212647860

1.2 重定向

response对象还可以帮助我们进行重定向。

这里要区分重定向和转发的区别。

重定向:重新进行了一次请求,不能在获得上一个请求的所有内容,地址栏内的地址也会发生改变。

转发:转发并没有改变请求,可以获得仍能获得该请求的内容,地址栏内的地址也不会改变。

对于response来说,重定向使用sendRedirect()方法。

response.sendRedirect("1.jsp");复制代码

参数可以是一个网址也可是一个JSP页面。

1.3 增加Cookie

Cookie其实就是一个和网站相关的文本文件,这个文本文件很小,通常只有4K大小。里面可以用来存放用户的信息,以便网站能对用户提供更好的服务,例如10天免登录,浏览历史等等。

Cookie是有生存期限的,默认情况下Cookie只存在与浏览器的内存里,当关闭浏览器时Cookie就消失,但是我们可以通过设置Cookie的生存期来将Cookie保存到本地硬盘中。

添加Cookie的流程:

  1. 创建Cookie

  2. 设置Cookie的生命周期

  3. 向客户端添加Cookie

实例展示:

<%
    String userName = request.getParameter("name");
    String userPassWord = request.getParameter("password");
    Cookie cookie1 = new Cookie("userName", userName);
    Cookie cookie2 = new Cookie("userPassword", userPassWord);
    cookie1.setMaxAge(24*3600);
    cookie2.setMaxAge(24*3600);
    response.addCookie(cookie1);
    response.addCookie(cookie2);
%>复制代码

setMaxAge的参数单位是秒。

但是需要注意的是:如果Cookie中含有中文,就要使用java.net.URLEncoder.encode()来进行编码,在获取的时候通过java.net.URLDecoder.decode()来进行解码。

小结

以上就是JSP九大内置对象中的response对象,希望对读者有所帮助。到此我们JSP的内容已经结束了,当然理论知识虽然我们已经学完了,但是更多的还是需要实践,一起加油吧!

 伪原创工具 SEO网站优化  https://www.237it.com/ 

作者:gw_GW
链接:https://juejin.cn/post/7035989942857629733

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐