• 重温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"));

            

        }

     

     

  • 相关阅读:
    Docker手动搭建sentry错误日志系统
    Flask源码解析:Flask应用执行流程及原理
    django Rest Framework---缓存通过drf-extensions扩展来实现
    Python实现 -- 冒泡排序、选择排序、插入排序
    Python查找算法之 -- 列表查找和二分查找
    java设计模式之单例模式
    中文乱码解决方案
    web应用中Filter过滤器之开发应用
    web应用中的Filter过滤器之基础概述
    会话跟踪技术
  • 原文地址:https://www.cnblogs.com/chengzhipcx/p/4989394.html
Copyright © 2020-2023  润新知