request和response操作响应行头体信息

请求:
请求行:
1.Get方式,请求参数放在请求行上,需要一个一个转。
    new String(ss.getBytes(“iso8859-1”),”utf-8”);
    因为行、头 字符集固定为iso8859-1

    Post方式,请求参数放在请求体重,只需要修改请求体的字符集为UTF-8即可
    Request.setCharacterEncoding(“utf-8”);
    注意:请求体字符集设置,必须放在读取请求体内容之前。getParameter这类方法之前,否则无效

2.String getMethod()    该方法用于获取HTTP请求消息中的请求方式(如GET、POST等)
3.String getRequestURI()    该方法用于获取请求行中资源名称部分,即位于URL的主机和端口之后、参数部分之前的部分
4.String getContextPath()    该方法用于获取请求URL中属于WEB应用程序的路径,这个路径以“/”开头,表示相对于整个WEB站点的根目录,路径结尾不含“/”。如果请求URL属于WEB站点的根目录,那么返回结果为空字符串(””)

动态获取当前的项目名
例如:/web12_1

5.String getRemoteAddr()    该方法用于获取请求客户端的IP地址,其格式类似于“192.168.0.3”

Localhost
127.0.0.1

0:0:0:0:0:0:0:1
------------------
请求头:

Request操作请求头

方法声明    功能描述
String getHeader(String name)    该方法用于获取一个指定头字段的值,如果请求消息中没有包含指定的头字段,getHeader()方法返回null;如果请求消息中包含有多个指定名称的头字段,getHeader()方法返回其中第一个头字段的值



响应:
响应行: 响应状态码

response.setStatus(int status);
response.sendError(int status,String msg);//设置错误状态码4xx,5xx时,会将错误信息显示出来

响应头:
Response.setHeader(String name,String value);//设置响应头  如果name相同,新值覆盖旧值
    响应头是可以自定义,但是没有意义
    Name忽略大小写的

Response.addHeader(String name,String value);//追加响应头   如果name相同,值进行追加操作

重定向操作:【多练】
    状态码:302
    响应头:location【已经被response.sendRedirct(request.getContextPath()+"/register.htm"(路径名称)取代】

3、    响应体
字节流:getOutputStream();
字符流:getWriter();

String path = this.getServletContext().getRealPath("/")+"download/"+file_name;
        FileInputStream fis = new FileInputStream(path);
        ServletOutputStream out = response.getOutputStream();
注意:
    ①一山难容二虎(一个响应体中,不能同时用多个流操作)
    ②无论是response的字节流还是字符流不需要咱们手动关闭的,由服务器托管。
    ③刷新流,建议使用response.flushBuffer();


问题1:一个Servlet代码能否同时存在两种流的代码?没问题
    If(xxx){
        getOutputStream();
}else{
    getWriter();
}


修改响应体字符集,同时修改前端解码字符集
    response.setContentType("text/html;charset=utf-8");


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值