`
yx1989
  • 浏览: 10564 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
社区版块
存档分类
最新评论

day05-request response

 
阅读更多

Response:

解决response中文乱码问题的几种方式:
1. 向浏览器发送http头,指定编码为utf-8,并将要输出的字符串转成utf-8格式输出。代码如下:
     response.setHeader("content-type", "text/html;charset=utf-8");
     String s = "中国";
     response.getOutputStream().write(s.getBytes("utf-8"));
2. 通过写入html<meta>标签来通知浏览器以utf-8编码打开,并将要输出的字符串转成utf-8格式输出。代码如下:
     response.getOutputStream().write("<meta http-equiv='content-type' content='text/html;charset=UTF-               8'>".getBytes());
     String s = "中国";
     response.getOutputStream().write(s.getBytes("UTF-8"));
3.通过如下代码设置:
     response.setCharacterEncoding("utf-8");//设置将要发给浏览器的response编码类型(MIME charset)。
     response.setContentType("text/html;charset=utf-8");//设置发送给浏览器的上下文编码类型。这个方法必须在getWriter()方法被调用前使用。可以单独使用本句,而不用上一句。

Response实现文件下载(中文文件名)
1.设置response的上下文编码类型
     response.setContentType("text/html;charset=UTF-8");
2.获取输入流,并判断文件是否存在。文件不存在在页面打印提示信息,注意提示信息的编码。
3.用URLEncoder对文件进行编码(会将空格字符 " " 转换为一个加号 "+"),然后再将"+"用表示空格的"%20"替换回来。
4.发送表示下载的消息头,其中包括文件名response.setHeader("content-disposition", "attachment;filename=" + filename);
5.其余内容相当于普通文件复制过程。


Response实现请求重定向
方法1:
设置返回头的状态码为302并在返回头中给出地址:
     response.setStatus(302);
     response.setHeader("location", "/myday05/index.jsp");
方法2:
直接使用response的重定向方法:
     response.sendRedirect("/myday05/index.jsp");

Request:
请求头getHeader:获取http消息头的信息。
请求参数获得getParameter:获取get方法带过来的参数。

解决Request中的乱码问题:
post方法的乱码可以通过:request.setCharacterEncoding("UTF-8");来解决
get方法则必须通过先将String按ISO8859-1转成字节数组,然后再将该字节数组按UTF-8构造String:
代码如下:new String(s.getBytes("iso8859-1"),"utf-8")

注意:超链接后带中文数据的乱码问题

Request的请求转发的特点:
1.请求转发对浏览器而言只发了一次请求,并且浏览器的地址栏不会发生变化
2.请求转发下,服务器只会创建一个request response

* 请求转发应用场景mvc设计模式
* 在mvc设计模式下,都是servlet处理请求,处理请求产生数据后,servlet会把数据存储request域,然后转发给jsp显示

注意:在请求转发前由response输出的信息会被冲掉,在请求转发后由response输出的信息会会被清空。
分享到:
评论

相关推荐

    day09-Request&Response.zip

    day09-Request&Response.zip

    树懒_day07_request_response笔记

    移动开发的小白树懒,此文档写的是servlet的request/response的笔记...阐述了一些request和response常用的api.

    计算机网络第六版答案

    Computer Networking: A Top-Down Approach, 6th Edition Solutions to Review Questions and Problems Version Date: May 2012 ...This document contains the solutions to review questions and problems for...

    RESTful Web Services.rar

    a simple set of principles that every day developers can use to connect applications in a style native to the Web. Table of Contents Foreword........ . . . xi Preface........ . . . xiii 1. ...

    图片上传控件

    HttpPostedFile file = context.Request.Files["Filedata"];//获取上传的文件. string fileName = Path.GetFileName(file.FileName); //获取文件名称. string fileExtion = Path.GetExtension(file.FileName);//...

    8-07-14_MegaCLI for linux_windows

    SCGCQ00319423 Defect FreeBSD MegaCLI v8.05.02 does not detect controller when driver 5.504.05.00 is loaded SCGCQ00324031 Defect MegaCLI 8.04.07 output typos SCGCQ00324525 Defect MegaCLI: MFI_STAT_NOT_...

    ASP.NET常用代码

    response.write("&lt;script&gt;window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')&lt;/script&gt;") 接收参数: string a = Request.QueryString("id"); string b = Request.QueryString("id1"); 2....

    aqi:aqi天气信息爬虫、清洗-scrapy+scrapy-redis+selenium+pandas+matplotlib

    下载中间件重写process_request方法写入selenium操作,配合PhantomJS(此网页渲染对比chrome要快),取得数据重新封装response返回,引擎交给spider做解析。数据保存为json格式,利用数据分析三件套:numpy、pandas...

    a project model for the FreeBSD Project.7z

    A project model for the FreeBSD Project Niklas Saers ... ...Table of Contents Foreword 1 Overview 2 Definitions ...3-1....3-2....4-1....4-2....4-3....5-1....6-1....6-2....6-3....6-4....6-5....6-6....6-7....6-8....6-9....8-1....Up until now, the FreeBSD ...

    Competitive Caching of Query Results in Search Engines

    search engines receive millions of queries per day, and for each query, return a result page to the user who submitted the query. The user may request additional result pages for the same query, ...

    动易博客日历插件(20081212)

    If Status = 3 And PE_CLng(Trim(Request("ReceiveType"))) = 0 And UseCreateHTML &gt; 0 And ObjInstalled_FSO = True And Trim(Request.Form("CreateImmediate")) = "Yes" Then Response.Write " &lt;iframe id='...

    ASP.NET程序中常用的三十三种代码.txt

    response.write("&lt;script&gt;window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)&lt;/script&gt;")  接收参数: string a = Request.QueryString("id"); string b = Request.QueryString("id1");...

    ZendFramework中文文档

    1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) ...2.1.5. 定义访问控制 ...

    ModSecurity Reference Manual

    Table of Contents Introduction .............................................................................................................................8 ...Real-Time Monitoring and Attack Detection ...

    MySQL 5.6 Reference Manual

    Table of Contents Preface, Notes, Licenses . . . . . . . . ....1. Licenses for Third-Party Components ....1.1. FindGTest.cmake License ....1.2. LPeg Library License ....1.3. LuaFileSystem Library License ....

Global site tag (gtag.js) - Google Analytics