javaweb第四章

请求和相应
Servlet 最主要的作用就是处理客户端请求,并向客户端做出响应。为此,针对 Servlet 的每次请求,Web服务器在调用 service(方法之前,都会创建两个对象,分别是 HtpServletPequest和 HttpServletResponse。其中HttpServletRequest 用于封装 HTTP 请求消息,简称 request对象。HttpServletResponse 用于封装 HTTP 响应消息,简称response对象。request 对象和esponse 对象在请求 Servlet 过程中至关重要
在这里插入图片描述
HttpServletResponse 对象
在Servlet APl 中,定义了一个 HttpServletResponse 接口,它继承自 ServletResponse 接专门用来封装 HTTP 响应消息。由于HTTP 响应消息分为状态行响应消息头、消息体三部分。因此HttpServletResponse 接口中定义了向客户端发送响应状态码、响应消息头响应消息体的方法
HttpServletResponse应用
解决中文输出乱码问题
第一种方式:字节流向浏览器输出中文,会不会乱码:可能会出现乱码。
出现乱码的原因:服务器端的编码格式和浏览器的编码格式不一致引起的。
比如:
1.处理字节流的中文乱码问题
String data=“中国”;
ServletOutputStream out = response.getOutputStream();
2.处理乱码:服务器端的编码和浏览器端的编码保持一致。
3.让浏览器端的编码也是utf-8
response.setHeader(“Content-Type”, “text/html;charset=utf-8”);
4.让服务器端的中文编码格式是utf-8
out.write(data.getBytes(“utf-8”)); 处理字节流的中文乱码问题两种方式: 第一种:response.setHeader(“Content-Type”,
“text/html;charset=utf-8”);
第二章:response.setContentType(“text/html;charset=utf-8”);
第二种方式:字符流向浏览器输出中文,会不会乱码:肯定乱码。
乱码的形式:?? ,这个问号就表示中文的编码格式是采用iso-8859-1编码的,这种编码格式不支持中文。
处理原则:让浏览器和服务器的编码保持一致:
1.处理字符流的中文乱码问题
2.处理服务器的编码,让这个编码支持中文
response.setCharacterEncoding(“utf-8”);
3.处理器浏览器端的编码:
response.setHeader(“Content-Type”, “text/html;charset=utf-8”);
String data=“中国”;
4.获取字符流
PrintWriter pw = response.getWriter();
pw.print(data);
处理字符流的中文乱码问题:
第一种方式:response.setCharacterEncoding(“utf-8”);
response.setHeader(“Content-Type”, “text/html;charset=utf-8”);
第二种方式:response.setContentType(“text/html;charset=utf-8”);

HttpServletRequest 应用
在实际开发中,经常需要获取用户提交的表单数据,例如,用户名、密码、电子邮件等,为了方便获取表单中的请求参数,在HttpServletPequest 接口的父类 ServletRequest 中,定义了一系列获取请求参数的方法

RequestDispatcher 对象的应用
RequestDispatcher接口
当一个Web 资源收到客户端的请求后,如果希望服务器通知另外一个资源去处理请求,这时除了使用 sendRedirect0方法实现请求重定向外,还可以通过 RequestDispatcher 接口的实例对象来实现。在 ServletRequest 接口中定义了一个获取 RequestDispatcher 对象的方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值