zoukankan      html  css  js  c++  java
  • Spring MVC 解决乱码

    1. Spring 事务处理
        Spring MVC乱码问题
        三种处理数据库的方式
            (1)jdbc(J2EE规范)
            (2)Spring JDBCTemplate(进一步封装)
            (3)MyBatis/Hibernate(不容易调错,效率不是很高,但写代码更新简单)
            (4)jpa (J2EE规范) java persist api
            jdbc: select * from user u where u.id=1;
            hibernate:from User u where u.id=1;
            
    2. Spring  Transaction
        a.以前的处理方式:
            事务:原子性 一致性 隔离性 持久性
            同一个Connectiond
        b.AOP的原理和标注来实现了声明式的事务处理
        c.如何编码
            (1). 引入jar (不用引入jar,因为他就是aop实现,默认引入)
            (2). 开启Spring的事务处理功能
                AppConfig配置类加入@EnableTransactionManagement
            (3). 配置事务管理器的Bean(datasource)
                    JdbcConfig配置中加入TransactionManagement。
            (4). 开始使用Spring事务
                    Service 方法上加上 @Transactional

    3. 处理乱码问题
        a:97(ascii 美国 1Byte 256) a: 97(gb2312/gbk 2-3Byte)
    4. web系统最容易产生乱码的地方
        (1) 后台乱码的问题:
                a. 数据库UTF-8[默认Lanti1]
                b. JDBC连接的也要指定连接的编码格式
                c. 项目本身和项目文件都应采用UTF-8
        (2)应该理论上来说,你从前台存储数据到后台,或者拿数据到前台不应该出现乱码。
        (3)浏览器的问题
            a. 从浏览器的地址框直接传数据。
                get:浏览器会对数据进行ISO-8859-1的解码工作,后台utf-8进行解码。
                post:
            b. 拿到数据做展示
                要对传递的数据进行编解码处理。servlet的过滤器
                Spring帮我们写了这么一个过滤器,这个过滤器就是干编解码的工作
                
            编码: byte[] byte = "中".getBytes('ISO-8859-1');
            解码: String s = new String(bytes,"utf8")
            
            c. 配置Spring帮我们写好的那个Filter
            FilterRegistration.Dynamic encodingFilter =servletContext.addFilter("encodingFilter", CharacterEncodingFilter.class);
            encodingFilter.setInitParameter("encoding", String.valueOf(StandardCharsets.UTF_8));
            encodingFilter.setInitParameter("forceEncoding", "true");
            encodingFilter.addMappingForUrlPatterns(null, false, "/*");

  • 相关阅读:
    心得sql空值的应用
    C#开发GIS应用简明教程(二)
    网页右下角弹出窗口
    弹出输入框方法汇总
    C#开发GIS应用简明教程(三)
    防刷新的另一种方法
    相册
    网站下载速度限制方法
    .NET下多线程初探
    用DECODE做交叉报表
  • 原文地址:https://www.cnblogs.com/zhangze-lifetime/p/11833241.html
Copyright © 2011-2022 走看看