乱码问题:

一.  请求-乱码问题:服务器获取的请求数据,在console显示时,出现了乱码。
  (1)post请求方式解决:req.serCharacterEncoding("utf-8");
  (2)get请求方式解决:

    方式一:每个数据都要单独的转换
      String uname = req.getParameter("uname");
      String uname2 = new String(uname.getBytes("iso-8859-1"),"utf-8");
    方式二:req.setCharacterEncoding("utf-8");
      然后再Tomcat的server.xml文件中的Connect标签中增加属性: useBodyEncodingForURI="true"

二.  响应-乱码问题:浏览器显示的服务器响应数据,出现了乱码。
  (1)rep.setHeader("content-type","text/html;charest=utf-8");这句话的意思是:我给你一个HTML页面,你要用utf-8的格式去解析!

三.  我们来总结一下,新建的servlet重写service方法时的基本步骤:
  service()
  {
  //设置请求编码格式
  //设置响应编码格式
  //获取请求数据
  //处理请求数据
  //响应处理结果
  }


Servlet的请求转发:

一.  实现:req.getRequestDispatcher(" ").forward(req, rep);

二.  特点:

  (1)一次请求需要多个servlet的联动操作;第一个servlet需要用到其他servlet已经声明的业务逻辑处理代码;
因为request对象--req里面封装了浏览器请求所需要的全部信息; 这个req将会传到下一个servlet中;

  (2)请求转发,是服务器的行为,请求由服务器转发给另外一个页面处理,如何转发,何时转发,转发几次,客户端是不知道的。

  请求转发时,从发送第一次到最后一次请求的过程中,web容器创建一次 request和response对象,新的页面继续处理同一个请求。

  也可以理解为服务器将request 对象在页面之间传递。

  (3)servlet的请求转发,可以降低servlet类的代码冗余;

三.    在service中实现: 
  一个servlet有可能是被浏览器直接访问的, 也有可能是被其他servlet请求转发访问的;
  不同的访问方式,要用不同的处理方式:
  (1)浏览器访问: 调用getParemeter(), getParemeterValues() 等等方法;
  (2)请求转发访问: 调用getAtturebute();

  但是一个Servlet在他的生命周期中, 既有可能被浏览器直接访问, 也有可能被其他servlet请求转发访问, 还有可能在他的生命周期中, 背着两种方式都访问过, 所以我们要想一个万全之策!
  引入一个三目运算符:
  //获取req对象中存储的请求转发数据
  String str = ((req.getAttribute("str")==null?"":(string) req.getAttribute("str")


重定向:

一.    解释:
  假设ServletA, servletB, servletC .
  servletA作为登陆页面去访问servletB, servletB处理完req的部分信息后, 后面的信息servletB处理不好, 所以servletB通过请求转发, 访问servletC, 然后servletC处理,处理完后做出响应;
  但是我们知道, 当我们在servletB页面不断刷新时,浏览器地址栏地址是不会变得, 然而,servletB不断的请求访问servletC, 这样不安全!
  所以,我们采取重定向技术, servletB通过请求转发, 访问servletC, servletC处理完后,做出相应, 在响应头上添加servletD, 使得浏览器接受响应后, 需要再发送一次请求到servletD, 然后跳转 

  到servletD的页面, 这样, 我们就保护了servletB和servletC;
二.    如何实现:
  req.sendRedirect();
三.    特点:
  两次请求,地址栏信息改变;

转载于:https://www.cnblogs.com/EricShen/p/11459484.html

Servlet--06--解决乱码问题; 请求转发; 重定向;相关推荐

  1. 获取请求参数通用方式|| 中文乱码问题||请求转发

    1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数 1. String getParameter(String name):根据参数名称获取参数值    use ...

  2. springmvc重定向到另一个项目_SpringMVC结合Ajax、请求转发重定向、视图解析器

    每日总结 一.Spring结合Ajax的处理方式 1.传统解决方案 直接输出 2.使用SpringMVC框架提供的处理方法 注意: A.方法的返回值可以是对象或者集合 B.响应给前台的数据直接是jso ...

  3. php 请求转发 重定向,PHP怎么实现页面重定向?(图文+视频)

    本篇文章主要给大家介绍PHP实现页面重定向的三种方法详解. 那什么是页面重定向呢? 在网站开发过程中,当我们遇到网页迁移或者网站调整等情况,我们都需要做个重定向,防止流量错失.页面重定向就是通过各种方 ...

  4. 【Servlet】请求转发、重定向、Cookie使用之三天自动登陆

    三天自动登陆项目源码:GitHub地址-LoginSystem JDBC 手写SORM框架 手写Servlet 开发环境:Eclipse 一.请求乱码问题解决 // 设置请求.响应编码格式req.se ...

  5. Servlet 使用getRequestDispatcher进行请求转发页面未跳转 后台也未报错的问题的解决方法

    问题描述: 在Servlet中使用getRequestDispatcher进行请求转发的时候,前端页面空白未出现报错,后台也没有报错. 原因分析: getRequestDispatcher的路径没有问 ...

  6. java | (二十五)Servlet(1)req,resp,重定向,请求转发,数据共享

    今天(2021.9.24)开始学习一些有难度的知识了,如题 先安装和配置好Tomcat,具体下载和idea的配置可以参考 目录 开发步骤 Servlet对象生命周期 httpServletRespon ...

  7. servlet中请求转发forword与重定向redirect区别

    1.请求转发(RequestDispatcher)的过程: 客户首先发送一个请求到服务器端,服务器端发现匹配的servlet,并指定它去执行,当这个servlet执行完之后,它要调用getReques ...

  8. Servlet 请求转发(forword)与重定向(sendredirect)的区别

    servlet请求转发与重定向的区别: request.setAttribute("test","hello"); request.getRequestDisp ...

  9. servlet中请求转发(forword)与重定向(sendredirect)的区别

    servlet请求转发与重定向的区别: request.setAttribute("test","hello"); request.getRequestDisp ...

最新文章

  1. Vert.x 发送邮件
  2. 鼠标样式(cursor)
  3. linux下,每次git pull 或者git push都需要输入账号密码的问题以及git remote 的一些基本操作
  4. lucene 简单示例
  5. 台式计算机配置清单及价格,电脑配置清单及价格
  6. 关闭iOS软键盘的小方法
  7. Java高并发之BlockingQueue
  8. Java 异常种类及处理方法
  9. Cookie、Session和自定义分页
  10. Linux 异步IO
  11. HTML网上商城后台图片模板,网上购物商城前后台完整模板
  12. 强贴---不用VBA实现Excel单元格连动下拉选择
  13. python判断闰年_python如何判断闰年
  14. python抢红包程序算法,Python 抢红包算法模拟
  15. 我辞职了准备系统学习新知识和技提升自己
  16. Win7 获取管理员权限
  17. 深度学习:自编码器、深度信念网络和深度玻尔兹曼机
  18. 支付宝支付-常用支付API详解(查询、退款、提现等)(转)
  19. 模拟电路软件oracle,电子商务模拟教学平台
  20. mysql安装 修改密码 查找密码

热门文章

  1. python【Matlibplot绘图库】-认识Matploblib
  2. Confusion matrix
  3. Android之Pull解析XML
  4. 单引号oracle如何转义_如何在Oracle中预测和转义单引号'
  5. linux虚拟机上不了王,虚拟机上安装Linux时出现的问题及解决方法
  6. 网站更新的文章如何被百度快速收录?
  7. 浅析个人网站建设需要注重的建设问题
  8. 以营销型网站为例,网站建设过程中需要注意哪些问题?
  9. ros 消息队列与缓冲区_[ROS] [笔记(1)] 一个最简单的例子:Hello Robot(消息、发布者与订阅者)...
  10. shutdown thread.java_ShutdownHook- Java 优雅停机解决方案