今天的学习涉及到了 jsp中的两大函数 request(请求) 和 response(响应),这应该是大家学习jsp时最先碰到的两个对象,具体有什么作用呢?应该怎么用呢?请继续往下面看.

一.request介绍

  (1) request对象 是 javax.serlvet.httpServletRequest类型的对象 .是一个域对象, 该对象代表了客户端的请求信息 , 主要用于接受通过HTTP协议传送到服务器的数据.(包括头信息 , 系统信息 , 请求方式以及请求参数) , request对象的作用域是一次请求

二.request的请求编码

  (1) 涉及到服务端和客户端还有浏览器之间的传值与显示问题,那么不可避免的我们需要聊到编码问题,也就是解码或者转码 , 在我们使用的Tomcat中 , 它的默认编码是 <iso-8859-1> ,而众所周知的我们的中文编码用的比较多的是<UTF-8>,那么我们在通过request传值的时候就必须要考虑到解码的问题 , 否则迎接我们的就是那些花里胡哨的乱码 . 这个转码怎么转呢 ?

    就拿我们的请求参数的传值来说 , 我们通过<form>表单的的name属性来设置取值 , 其中还要通过 它method中的'get'和'post'两种传值方式来进行不同的解码,我们先说post

   下面是一个Servlet类中的doPost方法

   public void doPost(HttpServletRequest req, HttpServletResponse reps) throws ServletException, IOException

   {

      req.setCharacterEncoding("UTF-8"); //设置请求编码为 UTF_8

      .......

   }

     这个 setCharachterEncoding()方法就是 [post]传值方式的解码方式 , 作用就是让服务器把它那个 <iso-8859-1>的编码按照我我们需要的<UTF-8>的编码 解码后再给放到我们手上,这也是说为什么我们说这个 req.setCharacterEncoding("UTF-8")  是请求编码 ,这是我们给服务器发送请求 ,服务器按照我们的请求编码回应我们.

   

  我们再看 get传值方式

  下面是一个Servlet类中的doGet方法

  public void doGet(HttpServletRequest req, HttpServletResponse reps)
            throws ServletException, IOException
    {
         //假设jsp页面有一个 name名为 'Sex'的值传过来 ,我们先接收 并且转码

    String SexStr = req.getParameter("Sex");

    String Sex = new String(SexStr.getBytes("iso-8859-1"), "UTF-8");
    }

   这是什么意思呢 , 这个是我们先通过服务器的 <iso-8859-1>的方法获得Sex的底层字节数组 ,我们那用"UTF-8"的方式对字节数组进行加密,得到的就是我们要的中文字符了. 至于为什么 get和post两个解码方式不一样,我们可以通过测试看看地址栏就大概想到了,这个我就不细说了........

  说完 request这个请求编码问题,我们再来看看 response响应编码

三 , response介绍

  response 对象用于响应客户请求,向客户端输出信息。它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。请求的数据可以是各种数据类型,甚至是文件。response对象在JSP页面有效。

四, response 响应编码

  还是上代码

  public void doPost(HttpServletRequest req, HttpServletResponse reps) throws ServletException, IOException

  {

    reps.setContentType("text/html; charset=UTF-8");

    .......

  }

   以上代码还是一个Servlet类的的doPost方法 ,它的作用更直接 ,就拿表单里的下拉框来说我们可以给下拉框一个默认选中的选项 , 它的重要有点类似 ,就是给服务器和网页定了一个标准, 我给你的数据  还有你在网页上首先默认加载的数据必须是 <UTF-8>的编码格式 , 这个是它一个主要作用 ,大家不知道会不会经历过 ,有时候自己写的网页测试时候 ,加载出来 , 所有的中文变为了韩文亦或者问号 , 这样的情况对我们开发人员来说很简单,在浏览器中

  

有一个文字编码,我们在这里设置一下就可以了,不过如果对于一些小白的客户来说,我来逛你网站我只想买东西 , 你一出来就给我一个群看不懂的东西, 那么这个人的第一个感觉就是很差,  用户体验很差 , 所以 , 这个对浏览器的默认显示文字编码进行代码设置 还是很有必要的,因为我们这一行 用户体验是很重要的一个东西 .

   在说完请求和响应编码的设置时候,再来补充一下细节,这两个语句必须放在你使用的方法的最上面,不管你是现在 doGet 还是 doPost中 , 它都要在最上面 ,上代码示例   
      public void doGet(HttpServletRequest req, HttpServletResponse reps)
            throws ServletException, IOException
      {
            doPost(req, reps);
      }
      public void doPost(HttpServletRequest req, HttpServletResponse reps)
              throws ServletException, IOException
      {

      //设置请求响应编码
            req.setCharacterEncoding("UTF-8");
            reps.setContentType("text/html; charset=UTF-8");

   }

  

   

JSP学习之请求和响应编码的更多相关文章

  1. Laravel学习:请求到响应的生命周期

    Laravel请求到响应的整个执行过程,主要可以归纳为四个阶段,即程序启动准备阶段.请求实例化阶段.请求处理阶段.响应发送和程序终止阶段. 程序启动准备阶段 服务容器实例化 服务容器的实例化和基本注册 ...

  2. 请求与响应编码及jsp基本原理

    1.请求转发和请求包含 (1)请求转发: this.getServletContext().getRequestDispatcher("").forward(request,res ...

  3. 各种编码问题产生原因以及解决办法---------响应编码,请求编码,URL编码

     响应编码 产生原因以及解决办法: 示例: package cn.yzu; import java.io.IOException; import javax.servlet.ServletExcept ...

  4. servlet请求编码与响应编码问题(编码不一致可能会导致乱码)

    html中的编码 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&g ...

  5. Django:学习笔记(4)——请求与响应

    Django:学习笔记(4)——请求与响应 0.URL路由基础 Web应用中,用户通过不同URL链接访问我们提供的服务,其中首先经过的是一个URL调度器,它类似于SpringBoot中的前端控制器. ...

  6. HeadFirst Jsp 04 (请求和响应作为servlet)

    servlet 的存在就是为了客服服务, servlet的任务是得到一个客户的请求, 再发回一个响应. 由上图可知, web 容器会在启动后就加载所有的servlet类, 并为之创建实例和初始化 注意 ...

  7. javaweb请求编码 url编码 响应编码 乱码问题 post编码 get请求编码 中文乱码问题 GET POST参数乱码问题 url乱码问题 get post请求乱码 字符编码

     乱码是一个经常出现的问题 请求中,参数传递的过程中也是经常出现乱码的问题 本文主要整理了请求乱码中的问题以及解决思路   先要理解一个概念前提: 编码就是把图形变成数值码所以说: 图形的字符  -- ...

  8. Django 学习第九天——请求与响应

    一.HttpRequest 对象: 服务器接收到http协议的请求后,会根据报文创建 HttpRequest 对象视图函数的第一个参数是HttpRequest 对象再django.http 模块中定义 ...

  9. jsp学习(1)jsp请求过程和生命周期

    一.服务器处理jsp请求的过程: 以下步骤表明了 Web 服务器是如何使用JSP来创建网页的: 1.浏览器发送一个 HTTP 请求给服务器. 2.Web 服务器识别出这是一个对 JSP 网页的请求,并 ...

随机推荐

  1. cms 环境搭建

    一 :安装 JDK: 1.在根目录下新建目录 JDK 2.通过 xftp 导入 jdk 压缩包到 JDK 目录中 jdk-8u144-linux-x64.tar.gz,解压 tar -zxvf jdk ...

  2. 面试被问为什么使用Spring Boot?答案好像没那么简单

    面试官:项目中有使用Spring Boot吗? 小小白:用过. 面试官:说一下为什么要使用Spring Boot? 小小白:在使用Spring框架进行开发的过程中,需要配置很多Spring框架包的依赖 ...

  3. SpringBoot上传文件大小限制

    SpringBoot默认上传文件大小不能超过1MB,超过之后会报以下异常: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSize ...

  4. P2002 消息扩散(缩点)

    描述:https://www.luogu.com.cn/problem/P2002 有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市发布消息才能 ...

  5. 播放音乐(mciSendString)

    1.需要引用命名空间using System.Runtime.InteropServices; 这里只是做了个简单的播放功能,想了解更多查看它的官方文档 [DllImport("winmm. ...

  6. 用PHP获取网页上的信息相对于xpath效率低点

    用php实现对网页的抓取,及信息的收集,其实就是爬数据,具体实现步骤如下,首先应引入两个文件curl_html_get.php和save_file.php文件,两个文件具体代码是这样的curl_htm ...

  7. DotNet:Socket Server 异步套接字服务端实现

    异步服务器套接字示例 From https://msdn.microsoft.com/zh-cn/library/fx6588te(v=vs.110).aspx 下面的示例程序创建接收来自客户端的连接 ...

  8. IDEA打包JavaWeb项目

    IDEA打包JavaWeb项目 步骤: 1.配置项目->2.Build Artifacts->3.找到.war文件 具体操作: 首先,单击顶部工具栏的“File”选项,在弹出选项中选择“P ...

  9. 第一行Kotlin系列(二)Intent隐式显式跳转及向下传值

    1.Intent显式跳转页面 val button5 = findViewById<Button>(R.id.mButton5) button5.setOnClickListener { ...

  10. CF#214 C. Dima and Salad 01背包变形

    C. Dima and Salad 题意 有n种水果,第i个水果有一个美味度ai和能量值bi,现在要选择部分水果做沙拉,假如此时选择了m个水果,要保证\(\frac{\sum_{i=1}^ma_i}{ ...