HttpServletResponse对象

1.setStatus(int status)方法
setStatus(int status):该方法用于设置HTTP响应消息的状态码。并生成响应状态行。
2.sendError(int sc)方法
sendError(int sc):该方法用于发送表示错误信息的状态码。例如,404状态码表示找不到客户端请求的资源。

1.getOutputStream()方法

该方法所获取的字节输出流对象为 ServletOutputStream 类型。用于输出二进制格式的响应正文。

2.getWriter()方法

该方法所获取的字符输出流对象为PrintWriter类型。用于输出内容全为字符文本的网页文档。

在Eclipse中创建Web项目chapter04,在项目的src目录下,新建一个名称为pidan.response的包,在包中编写一个名为PrintServlet的Servlet类:

启动服务器浏览结果为:

2.HttpServletResponse 应用

.创建Servlet 在chapter04项目的pidan.chapter04.response包中编写一个名为PidanServlet的类,在该类中定义一个中文字符串,然后使用字符输出流输出:

在 web.xml中配置完PidanServlet的映射后,启动Tomcat 服务器,访问PidanServlet:

发生了乱码问题。原因是response对象的字符输出流在编码时,采用的是ISO-8859-1的字符码表,该码表并不兼容中文。为了解决上述编码错误,在上面代码备注处增加一行代码,设置字符编码使用的码表为UTF-8。
response.setCharacterEncoding(“utf-8”);

使用HttpServletResponse对象来解决乱码问题:

实现网页定时刷新并跳转

在chapter04项目的pidan.response包中编写一个名为RefreshServlet的类,该类使用response对象的setHeader()方法实现网页的定时刷新并跳转的功能:

去网页运行后跳转到相应的地址网页:

对文件进行修改,使当前页面每隔3秒自动刷新一次:

启动Tomcat 服务器,在浏览器访问RefreshServlet,可以看到浏览器每隔3秒刷新一次,并且输出了当前的时间。

实现请求重定向

为了实现请求重定向,在HttpServletResponse 接口中,定义了一个sendRedirect()方法,该方法用于生成302响应码和Location响应头,从而通知客户端重新访问Location响应头中指定的URL。

在chapter04项目的WebContent目录下编写用户登录的页面login.html和登录成功的页面welcome.html

在pidan.response包中编写一个名为LoginServlet 的类,用于处理用户登录请求:

在 web.xml中配置完LoginServlet 映射后,启动Tomcat 服务器:

然后输入用户名和密码:

HttpServletRequest对象

在chapter04项目的src目录下,新建一个名称为pidan.request的包,在包中编写一个名为RequestLineServlet的类,该类中编写了用于获取请求行中相关信息的方法,如文件4-10所示。

在 web.xml中配置完RequestLineServlet 映射后,启动Tomcat 服务器:

获取请求消息头的相关方法

在pidan.request包中编写一个名为RequestHeadersServlet的类,使用getHeaderNames()方法来获取请求消息头信息:

在 web.xml中配置完 RequestHeadersServlet 映射后,启动Tomcat服务器:

HttpServletRequest 应用

在HttoServletReauest 接口的父类ServletRequest中,定义了一系列获取请求参数的方法:

在chapter04项目的WebContent根目录下编写一个表单文件form.html。

在pidan.request包中编写一个名称为RequestParamsServlet的Servlet类,使用该Servlet获取请求参数:

RequestDispatcher 对象的应用

在chapter04项目的pidan.request包中编写一个名为RequestForwardServlet的Servlet类,该类使用forword()方法将请求转发到一个新的Servlet页面:

在 pidan.request包中编写一个名为ResultServlet的Servlet类,该类用于获取RequestForwardServlet 类中保存在request对象中的数据并输出:

在web.xml中,添加完两个Servlet的映射信息后,启动Tomcat 服务器,在浏览器中访问RequestForwardServlet:

可以看出,地址栏中显示的仍然是RequestForwardServlet的请求路径,但是浏览器中却显示出了ResultServlet中要输出的内容。这是因为请求转发是发生在服务器内部的行为,从RequestForwardServlet到ResultServlet属于一次请求,在一次请求中是可以使用request属性来进行数据共享的。

chapter请求和响应相关推荐

  1. HTTP/HTTPS的请求和响应

    HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer ...

  2. NETGEAR拒绝连接请求_3分钟理解HTTP的请求与响应

    HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer ...

  3. 优雅地记录http请求和响应的数据

    点击关注公众号,Java干货及时送达 来源:https://fredal.xin/http-body-recorder 经常会遇到需要处理 http 请求以及响应 body 的场景. 而这里比较大的一 ...

  4. 应用服务器与WSGI协议以及flask后端框架总结(后端接收请求返回响应的整个流程)...

    上次遗留了两个问题,先说一下自己的看法 问题: 1.明明一个线程只能处理一个请求,那么栈里的元素永远是在栈顶,那为什么需要用栈这个结构?用普通变量不行吗. 2._request_ctx_stack和_ ...

  5. 老李分享:HTTP协议之请求和响应

    老李分享:HTTP协议之请求和响应 HTTP请求头详解: GET http://www.foo.com/ HTTP/1.1 GET是请求方式,请求方式有GET/POST http://www.foo. ...

  6. Spring Boot 2.x基础教程:如何扩展XML格式的请求和响应

    在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...

  7. Spring Boot中如何扩展XML请求和响应的支持

    在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...

  8. 在请求和响应中使用 XML

    偶尔使用 Ajax 的开发人员也会注意到 Ajax 中的 x 并意识到它代表 XML.XML 是编程中最常用的数据格式之一,对于异步应用程序中的服务器响应能够带来切实的好处.在本文中,您将看到服务器如 ...

  9. python的Web框架,Django框架中的请求与响应

    请求与响应 简单流程图 我们先来了解一个请求与响应的大概流程 视图函数接受到的request到底是个什么对象呢? 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第 ...

最新文章

  1. Opencv cv2 Overload resolution failed
  2. JAVA enum实现简单状态机功能
  3. Android 小项目之--数据存储【Network】(附源码)
  4. tp5视图里写原生php,tp5中使用原生sql查询总结
  5. 为DbHelper工具类添加关闭资源的方法 jdbc 20210412_212728.mp4
  6. LeetCode 5178. 四因数
  7. matlab高数数学报告,高等数学实验报告matlab参考答案
  8. Android仿微信源码下载
  9. 网络安全与黑客工具TOP100
  10. MTK6577+Android之TP(触摸屏)
  11. Hacker(15)----嗅探原理
  12. 【HenCoder】HTTPS 为什么是安全的
  13. .jnlp 文件打开方式
  14. python少儿编程课件ppt_《Python 少儿趣味编程》
  15. 正方教务系统php登陆,正方教务管理系统最新版无条件注入GetShell | wooyun-2015-0122523| WooYun.org...
  16. 视觉定位系统怎么实现定位及引导贴合的应用?视觉定位系统案例详解
  17. 计算机故障维修智能检测平台管理系统,计算机检测维修与数据恢复技能大赛竞赛设备采购项目.doc...
  18. 华尔街见闻下操作mysql_GitHub - boshengw-shzq/reainl: 华尔街见闻和新浪财经新闻采集...
  19. 一飞智控CEO齐俊桐:一篇文章教你看透无人机飞控这十年
  20. MATLAB 点云粗糙度计算

热门文章

  1. jquery中的find()和next()的用法及区别
  2. Linux查找文本中的重复项,2在Linux中查找和删除重复文件的有用工具
  3. obj文件和mtl文件格式说明
  4. Learning Kali Linux 学习Kali Linux Lynda课程中文字幕
  5. Item 3: Understand decltype
  6. XiaoMi-Ruby-15.6-UMA-only黑苹果efi引导文件
  7. 唐桥云会议分组讨论——新的参会互动方式
  8. 微信分身服务器,苹果微信分身版
  9. 为什么需要TCP加速?TCP怎么加速呢?
  10. 解决Angular里的报错:ERROR Error: Uncaught (in promise): NullInjectorError: R3InjectorError()