Request对象、Response对象

Request对象

在Servlet中用来处理客户端请求所需要的doGet方法doPost方法

Get请求和Post请求的区别

  1. Get请求
    1. 提交的数据会放在url之后,以?分割url和传输数据,参数之间以&相连
    2. get方式明文传递,数据量小,不安全
    3. 效率高,浏览器默认请求方式为GET请求
    4. 对应的Servlet的方法是doGet
  2. Post请求
    1. post方法是把提交的数据放在HTTP包的Body中
    2. 密文传递数据,数据量大,安全
    3. 效率相对没有GET高
    4. 对应的Servlet的方法是doPost

request主要方法

返回值方法名说明
StringgetParameter(String name)获取提交的数据
voidsetCharacterEncoding(String env)设置每个请求编码格式
voidsetAttribute( String name, Object o )用于转发,设置一个属性对应的属性值
ObjectgetAttribute( String name)接受一个属性对应的属性值

Response对象

用于响应客户请求并向客户端输出信息

response主要方法

返回值方法名说明
voidsetCharacterEncoding(String charset)设置服务端响应内容编码格式
voidsetHeader(String name, String value)设置响应信息头
voidsetContentType( String type)设置响应头文件类型
响应式的编码格式
PrintWritergetWriter()获取字符输出流

常见问题:解决中文乱码问题

  1. 方法一:不建议使用
    1. setCharacterEncoding(String charset)setHeader(String name, String value) 同时使用
    2. 第一个用于设置服务端响应内容的编码;第二个用于客户端响应编码格式
      1. resp.setCharacterEncoding("utf-8");
      2. resp.setHeader("Content-type","text/html;charset=utf-8");
  2. 方法二:建议使用
    1. setContentType(String type)
    2. 一行代码解决的问题,为什么要两行代码呢
      1. resp.setContentType("text/html;charset=utf-8");

向客户端输出数据样例

package servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class Servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.println("你好啊");
        writer.println(2);
        
    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值