Servlet再一次回顾(三)

本文深入探讨了HTTP请求与响应的机制,详细介绍了HttpServletRequest与HttpServletResponse接口的功能与使用方法,包括请求信息的读取与响应信息的设置,以及解决中文乱码问题的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、HttpServletRequest接口

HttpServletRequest是ServletRequest的子接口,功能和方法更加强大,HttpServletRequest接口提供了用于读取HTTP请求中的相关信息的方法

a.HttpServletRequest类有什么作用

每次只要有请求进入Tomcat服务器,Tomcat服务器就会吧请求过来的HTTP协议信息解析好封装到Request对象中
然后传递到service方法(doGet()和doPost())中给我们使用,我们可以通过HttpServletRequest对象获取所有请求的信息

b.HttpServletRequest类的常用方法

1.getRequestURI() 获取请求的资源路径
2.getRequestURL() 获取请求的统一资源定位符(绝对路径)
3.getRemoteHost() 获取客户端的ip地址
4.getHeader() 获取请求头
5.getParamter() 获取请求参数
6.getParameterValues() 获取请求参数(多个值的时候使用)
7.getMethod() 获取请求的方式
8.setAttribute(key,value) 设置域数据
9.getAttribute(key) 获取域数据
10getRequestDispatcher 获取请求转发对象

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//        1.getRequestURI()   获取请求的资源路径
        System.out.println("URI"+request);
//        2.getRequestURL()   获取请求的统一资源定位符(绝对路径)
        System.out.println("绝对路径"+request.getRequestURL());
//        3.getRemoteHost()   获取客户端的ip地址
        System.out.println("客户端ip地址"+request.getRemoteHost());
//        4.getHeader()       获取请求头
        System.out.println("请求头User-Agent"+request.getHeader("User-Agent"));
//        5.getParamter()     获取请求参数

//        6.getParameterValues()  获取请求参数(多个值的时候使用)
//        7.getMethod()       获取请求的方式
        System.out.println("请求方式"+request.getMethod());
    }

二、HttpServletResponse接口

在Servlet中,当服务器响应客户端的一个请求时,就要用到HttpServletResponse接口。HttpServletResponse接口是ServletReponse的子接口,HttpServletResponse接口提供了与HTTP协议相关的一些方法,用于设置HTTP响应头和向客户端写Cookie

1.HttpServletResponse类的作用

HttpServletResponse和HttpServletRequest类一样,每次请求进来,Tomcat服务器都会创建一个Response对象
传递给Servlet程序去使用。HttpServletRequest表示请求过来的信息,HttpServletResponse表示所有响应的信息,
我们如果需要设置返回给客户端的信息,都可以通过HttpServletResponse对象来进行设置

2.两个输出流的说明

方法用途
字节流:getOutputStream()常用于下载(传递二进制数据)
字符流:getWriter()常用于回传字符串(常用)

两个流同时只能使用一个,
使用了字节流就不能在使用字符流,反之亦然,不然报错

3.解决中文乱码问题

	法一:
      //response 默认回传编码为ISO-8859-1
       //设置服务器字符集为UTF-8
       response.setCharacterEncoding("UTF-8");
       //通过响应头,设置浏览器也使用UTF-8
       response.setHeader("Content-type","text/html;charset=UTF-8");
    法二:
       //设置服务器字符集为UTF-8
       //setContentType 它会同时设置服务器和客户端都使用UTF-8字符集,还设置了响应头
       //此方法一定要在获取流对象之前才有效
       response.setContentType("text//html;charset=UTF-8");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值