码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb——HttpServletResponse

时间:2018-02-15 14:32:56      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:src   etc   中文   document   end   iter   servlet   查询   ice   

HTTPServletRespons

我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response。

service方法中的response的类型是ServletResponse,而doGet/doPost方法的response的类型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加强大。

TomCat下Servlet的请求和响应流程

技术分享图片

设置HTTP响应

因为response代表响应,所以我们可以通过该对象分别设置Http响应的响应行,响 应头和响应体

技术分享图片

一、设置响应行

response.setStatus(404);  // 设置响应状态码

示例:设置重定向

response.sendRedirect("http://www.baidu.com");

实际上执行的是下面的两行代码

response.setStatus(302);  // 设置302响应码
response.setHeader("Location","http://www.baidu.com")  // 设置响应头,重定向
技术分享图片
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8     恭喜你,注册成功,<span style="color:red" id="second">5</span>秒钟后跳转,如不跳转点击<a href="http://www.baidu.com">这里</a>!.
 9     <script type="text/javascript">
10         window.onload = function(){        <!--页面加载后执行-->
11             var time = 5;
12             var secondEle = document.getElementById("second");
13             var timer = setInterval(function(){
14                 secondEle.innerHTML = time;
15                 time--;
16                 if(time==0){
17                     clearInterval(timer);    <!--清除定时器-->
18                     location.href="http://www.baidu.com";    <!--页面跳转-->
19                 }
20                 
21             },1000);    <!--定时器-->
22         }
23 
24 
25     <!--定时器格式:  setInterval(每过指定的毫秒值,执行的函数)(毫秒值)-->
26     </script>
27 </body>
28 </html>
JS版跳转页面

二、设置响应头

response.setHeader(Key,Value)

示例:

response.setHeader("refresh","5;url=http://www.baidu.com");  // 设置页面加载后5s跳转到指定url

三、设置响应体

1)设置响应文本

response.getWriter().write("你好,world.");

中文乱码问题

原因:在服务器端有一个Response缓冲区,当我们书写 "你好,world." 的时候,会查询ISO-8859-1编码表将其转换成字节形式,但此编码表中没有中文,所以返回的就是一堆?。

解决办法:

response.setCharacterEncoding("UTF-8");  // 设置缓冲区的编码集为UTF-8格式
response.setHeader("Content-Type","text/html; charset=utf-8");  // 设置响应头为utf-8格式

简便模式
response.setContentType("text/html; charset=utf-8");

 

JavaWeb——HttpServletResponse

标签:src   etc   中文   document   end   iter   servlet   查询   ice   

原文地址:https://www.cnblogs.com/x54256/p/8449488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!