JavaWeb学习-Servlet系列-11-HttpServletResponse对象介绍

这篇开始,我们来具体学习HttpServletRequest和HttpServletResponse两个对象以及相关方法操作。我们来回顾一下前面tomcat系列中讲到的http协议。由于HttpServletResponse更简单一些,我们先来学习HttpServletResponse对象和方法。

1.HttpServletResponse基本概念

前面http简单了解,我们知道响应对象包含三部分,响应消息行,响应消息头,响应正文(主体),所以,我们就分别围绕这三大块来介绍HttpServletResponse中相关方法。

2.响应消息行

一般来说,响应消息行都是 HTTP/1.1 200 OK这样的内容,在响应消息行中,我们只有一个方法来设置状态码,其他HTTP/1.1和OK都是没法改变的。给一个响应设置状态码,很好理解,例如我们开发一个接口,需要给反馈对应的状态码,这个状态码可以是自己公司定义,也可以是常见的HTTP响应状态码。

方法setStatus(int sc),设置响应消息状态码有两个方法,还有一个多了一个参数,msg,带上一句消息。

代码示例

package com.anthony.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo2 extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setStatus(response.SC_BAD_REQUEST); //设置HTTP 400的状态码
		System.out.println(response.getStatus());
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

请求http://localhost:8080/Servlet01/demo2

在Eclipse日志控制台可以打印出 400 这个状态码,接口文档中显示还有第二个方法setStatus(int sc, java.lang.String sm) 但是这个方法不提倡使用,这里就不演示。

 

3.响应消息头

来看看和响应消息头相关的方法,在API文档中找到Head相关有两组方法。

左边是一组add方法,右边是一组set方法,看起来方法名称都差不多,主要区别是,add是只管添加头信息,而set是不允许有重复的key出现,add可以有重复。

下面我用setHeader()方法来给响应消息头添加一些键值对内容,例如字符编码。

package com.anthony.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo2 extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//告知浏览器使用什么编码
		response.setHeader("content-type", "text/html;charset=UTF-8");
		//告知客户端不缓存
		response.setHeader("pragma","no-cache");
		response.setHeader("cache-control","no-cache");
		response.setDateHeader("expires",0);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

部署到tomcat,浏览器访问http://localhost:8080/Servlet01/demo2

然后在火狐浏览器上按下F12,观察响应消息头

关于接口HttpServletResponse的介绍就到这,至于响应正文操作的方法介绍,后面我们慢慢会学习到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值