zoukankan      html  css  js  c++  java
  • 重温servlet③

    请求转发 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.先获取传递过来的参数

             * 2.回退,适用utf-8重编

             */

            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 {

            /**

             * 在获取参数之前需要先调用requestsetcharterEncoding("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"));

            

        }

     

     

  • 相关阅读:
    解锁 redis 锁的正确姿势
    PHP实现Redis单据锁,防止并发重复写入
    js笔记
    FormData使用方法详解
    jquery里用each遍历的值存到数组和字符串
    Sublime Text3 安装 CTags 插件出现乱码
    通过pd.to_sql()将DataFrame写入Mysql
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket
    pandas 从txt读取DataFrame&DataFrame格式化保存到txt
    pandas 取消读取csv时默认第一行为列名
  • 原文地址:https://www.cnblogs.com/chengzhipcx/p/4989394.html
Copyright © 2011-2022 走看看