`
yx1989
  • 浏览: 11051 次
  • 性别: 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"的教程可能涵盖了这些内容,并通过实例演示了如何发送请求、接收响应以及分析它们的结构。深入学习这部分内容,对于开发Web应用、API接口设计、网络调试等都非常有帮助。如果你正面临...

    request response

    通过`day08-request`和`day08-response`这两个文件名,我们可以推测这可能是某个学习课程或项目中的两个部分,分别关注于请求和响应的实现或分析。这些文件可能包含示例代码、练习或讲解文档,帮助学习者更好地理解...

    传智播客崔希凡JavaWeb-day10-java web之requestrespone-全部资料

    本资源包"传智播客崔希凡JavaWeb-day10-java web之requestrespone-全部资料"涵盖了第十天课程的完整学习材料,帮助学生深化对HTTP请求与响应的理解。 1. **HTTP请求**:在Web应用中,用户通过浏览器发起HTTP请求来...

    崔希凡JavaWeb笔记day22-day24

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;...

    树懒_day07_request_response笔记

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

    0DAY 软件查询小偷 -ASP源码.zip

    源码的编写者可能利用ASP的特性,如服务器端的脚本执行、内置对象(如Request、Response、Session等)以及与数据库的连接能力,来实现动态数据的获取和处理。开发者通过解压并研究这个源码,可以学习到如何构建类似...

    hm课程的登录小案例资料

    `day09-Request&Response`可能包含了使用Servlet处理登录请求的代码。 - Servlet通过重写`doGet`或`doPost`方法来响应HTTP请求。登录通常涉及`doPost`,因为登录信息通常是通过POST方法发送的,以防止在URL中显示...

    爬虫代码matlab-Matlab-A-Day:Matlab-A-Day是一个用ScrapyPython库编写的网络爬虫,它提供来自Mathw

    Scrapy 包括了许多核心组件,如 Spiders(蜘蛛)、Item Pipeline(物品管道)、Downloader Middleware(下载器中间件)和 Request/Response 对象等,这些组件协同工作,使得开发爬虫变得简单易行。在 `Matlab-A-Day`...

    Day29Example.rar

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; ...

    28论坛社区音吧0DAY

    根据提供的信息,我们可以推断出该内容涉及到一个名为“28论坛社区音吧0DAY”的网站或系统的安全漏洞。在IT行业中,“0day”通常指的是软件中存在的未知于开发者及公众的安全漏洞,攻击者可能会利用这些漏洞来进行...

    c#.net常用函数和方法集

    - `int day = currentTime.Day;` - 这行代码可以从当前时间中提取出日。 - **提取小时:** - `int hour = currentTime.Hour;` - 此行代码用于提取出当前时间的小时数。 - **提取分钟:** - `int minute = ...

    C#.NET常用函数大全.txt

    - 日:`int day = currentTime.Day;` - 小时:`int hour = currentTime.Hour;` - 分钟:`int minute = currentTime.Minute;` - 秒:`int second = currentTime.Second;` - 毫秒:`int millisecond = ...

    C#函数方法集

    - **获取日期**:`currentTime.Day`返回当前时间的日期。 - **获取小时**:`currentTime.Hour`返回当前时间的小时。 - **获取分钟**:`currentTime.Minute`返回当前时间的分钟。 - **获取秒数**:`currentTime....

    Visual C#常用函数和方法集汇总

    - 直接访问:`string user_IP = Request.ServerVariables["REMOTE_ADDR"].ToString();` - 处理代理服务器:检查 `HTTP_VIA` 是否存在,如果存在,则使用 `HTTP_X_FORWARDED_FOR` 获取实际IP。 #### 会话管理 1. ...

    Day09_cookie & Session

    ### Day09_cookie & Session:详解Cookie与Session的用法及生命周期 在现代Web开发中,维护用户状态是一项至关重要的任务。Cookie与Session是实现这一目标的两种主要机制。本文将深入探讨这两种技术的工作原理、...

    崔希凡JavaWeb笔记day28(JavaWeb完毕)

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub } } ``` - **解释**:通过`@Web...

    C#method

    - **日**: `int 日 = currentTime.Day;` - **小时**: `int 小时 = currentTime.Hour;` - **分钟**: `int 分钟 = currentTime.Minute;` - **秒**: `int 秒 = currentTime.Second;` - **毫秒**: `int 毫秒 = ...

    方立勋javaweb视频day10网上购书系统

    6. **请求转发和重定向**:在处理用户请求时,会用到Servlet的请求转发(request.getRequestDispatcher())和重定向(response.sendRedirect())方法,以实现页面间的跳转。 7. **EL(Expression Language)和JSTL...

Global site tag (gtag.js) - Google Analytics