请求转发 forward 仅有一个请求 至少两个servlet

前一个的响应头保留着,但是响应体不保留了。

设置响应体太大,会报错

 

请求包含Include 都包含,响应头和响应体都会保留着

 

Request域

在两个servlet通过转发或者包含的时候设置其参数。

SetAttribute

GetAttribute

RemoveAttribute

 

请求转发与重定向的区别

  1. 请求转发是请求一次响应,而重定向是两次请求两次响应。
  2. 请求转发地址栏不变化,而请求重定向会显示后一个请求的地址。
  3. 请求转发只能发到本项目其他的servlet,而重定向不只能重定向到本项目的其他servlet中,还能定向到其他项目。
  4. 请求转发是服务器端行为,只需给出转发的servlet的路径,而重定向需要给出requestURI,即包含项目名。

 

响应编码

Iso-8859-1 拉丁文编码 不支持中文

Gbk 中国国标 gb2312

Utf-8万国码 ,支持全世界所有的字符都可以。

 

乱码问题

在Getwriter之前输入

Response.setconType("text/html;charset=utf-8");

 

页面请求编码 就是页面的编码

 

适用post方法是需要在getparameter之前设置request.setchar

    public
void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        /**

         * 1.先获取传递过来的参数

重编

         */

        String name =request.getParameter("username");

        byte[]b=name.getBytes("iso-8859-1");

        name=new
String (b,"utf-8");

        System.out.println(name);

    }

 

    public
void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        /**

         * 在获取参数之前需要先调用request的setcharterEncoding("utf-8")

         */

        request.setCharacterEncoding("utf-8");

        String name=request.getParameter("username");

        System.out.println(name);

    }

 

}

 

url乱码

    @Test

    public
void f1() throws UnsupportedEncodingException{

        String name="张三";

        byte[]b=name.getBytes("utf-8");

        System.out.println(Arrays.toString(b));

        

        String s=URLEncoder.encode(name,"utf-8");

        System.out.println(s);

        System.out.println(URLDecoder.decode(s, "utf-8"));

        

    }

 

 

重温servlet③的更多相关文章

  1. 重温Servlet学习笔记--session对象

    session的类型是属于HttpSession,HttpSession是由javaWeb提供的,用来会话跟踪的类.session是服务器端对象,保存在服务器端. HttpSession是servle ...

  2. 重温Servlet学习笔记--Cookie对象

    首先要了解cookie必须得先了解http协议,,Cookie是http协议指定的,先由服务器保存cookie到浏览器,在下次浏览器请求服务器时把上次请求得到的cookie归还给服务器,cookie以 ...

  3. 重温Servlet学习笔记--request对象

    request和response是一对搭档,一个负责请求一个负责响应,都是Servlet.service()方法的参数,response的知识点前面梳理过了,这里只说一下request,在客户端发出每 ...

  4. 重温Servlet学习笔记--response对象

    在用户浏览网页时,服务器对于客户端浏览器做出的响应被封装成一个HttpServletResponse对象,要对浏览器操作只需要操作这个response对象即可.response的功能分类及介绍: 响应 ...

  5. 重温Servlet学习笔记--servletContext对象

    一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对 ...

  6. 重温servlet②

    重定向:我给服务器请求一条消息,服务器让我访问另外一个服务器(新的地址).302状态码,并设置location头,完成重定向.两个请求. package com.pcx.servlets;   imp ...

  7. 重温servlet①

    Servlet是单例的,是线程不安全的.比较灵活,但是容易会使两个线程产生错误 类由我们自己来写,对象由服务器生成,方法由服务器自己调用.   一个servletconfig对象对应着一段web.xm ...

  8. 重温Servlet学习笔记--编码问题

    在说编码问题之前,首先先了解一下常见的字符编码: ISO-8859-1:  拉丁编码,不支持中文 gbk,gb2312,gb18030:系统默认编码,是中国的国标码 utf-8: 支持几乎所有语言的编 ...

  9. 重温 JSP 与 Servlet

    Java Web使用SSH框架多了,很多基础的 JSP 与 Servlet 的东西都忘记了.最近在 JSP 标签 和 Struts2 包装的 Session 对象的混合使用时弄晕了,就翻书温习下. J ...

随机推荐

  1. MySQL安装及初步配置.md

    MySQL 安装脚本 #!/bin/bash MYSQL_BASEDIR=/usr/local/mysql MySQL_DATADIR=/data/mysql SERVER_ID=`hostname ...

  2. Java 回调函数例子

    首先定义一个类Caller,按照上面的定义就是程序员A写的程序a,这个类里面保存一个接口引用. public class Caller { private MyCallInterface callIn ...

  3. Python高级网络编程系列之第一篇

    在上一篇中我们简单的说了一下Python中网络编程的基础知识(相关API就不解释了),其中还有什么细节的知识点没有进行说明,如什么是TCP/IP协议有几种状态,什么是TCP三次握手,什么是TCP四次握 ...

  4. Zookeeper入门(三)之工作流

    一旦ZooKeeper集合启动,它将等待客户端连接.客户端将连接到ZooKeeper集合中的一个节点.它可以是leader或follower节点.一旦客户端被连接,节点将向特定客户端分配会话ID并向该 ...

  5. [转]用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口

    原文链接: 1.用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口 2.Windows MFC 两个OpenGL窗口显示与线程RC问题

  6. OpenCV——直方图计算、寻早最值位置和对比匹配(判断两幅图的相似程度)

  7. Python2.7-hmac

    hmac 模块,基于密钥的哈希算法 1.模块对象 1.1 HMAC 对象 1.1.1 初始化构建类:需要通过模块方法 hmac.new(key[, msg[, digestmod]]) 创建一个新对象 ...

  8. 【转】python直接运行tcl脚本

    python中调用tcl是通过加载TkInter来实现的. from Tkinter import Tcl tcl = Tcl() tcl.eval('source tu.tcl') tcl.eval ...

  9. lucas定理的证明

    http://baike.baidu.com/link?url=jJgkOWPSRMobN7Zk4kIrQAri8m0APxcxP9d-C6qSkIuembQekeRwUoEoBd6bwdidmoCR ...

  10. 配置Docker镜像加速器

    由于在国内下载docker官方镜像的速度很慢且容易报错,因此需要配置docker镜像加速器来解决这个问题,加速器就是镜像代理的概念,只代理公有镜像,报错结果如下: net/http: request ...