chapter请求和响应

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属性来进行数据共享的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值