Spring构建Web应用部署至Tomcat开发过程中的数据编码问题
来源:互联网 发布:matlab读取txt文件数据 编辑:程序博客网 时间:2024/05/20 08:44
通过Maven构建整个工程,利用Spring进行web应用开发,数据库为MySQL,前端使用Thymeleaf模板,应用部署至Tomcat上。为了在HTML页面中正常显示从数据库读取的中文数据,对整个工程进行了如下的编码设置(都设置为UTF-8):
- Tomcat服务器的编码设置:在Tomcat安装路径下的conf/server.xml中进行如下设置
<!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 --> <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
- Spring工程WEB-INF/web.xml中进行编码filter的设置
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
- 对html页面的编码格式进行设置(同时要注意设置html文件本身的存储编码格式为utf-8)
<head> <meta charset=" UTF-8"></meta></head>
- 由于前端使用了Thymeleaf模板,所以在配置Thymeleaf的视图解析器和模板解析器时需要设置它们的编码格式为utf-8
@Bean public ViewResolver viewResolver( //Thymeleaf 视图解析器 SpringTemplateEngine templateEngine) { ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); viewResolver.setTemplateEngine(templateEngine); viewResolver.setCharacterEncoding("UTF-8"); return viewResolver; }@Bean public TemplateResolver templateResolver() { // 模板解析 TemplateResolver templateResolver = new ServletContextTemplateResolver(); templateResolver.setPrefix("/WEB-INF/views/"); templateResolver.setSuffix(".html"); templateResolver.setTemplateMode("HTML5"); templateResolver.setCharacterEncoding("UTF-8"); return templateResolver; }
同时,MySQL中所使用的数据库与数据表的编码也要设置成UTF-8。此外在数据源的配置类中,也需要在数据源的url中加入参数characterEncoding=utf-8,如下:
/* 配置数据源 */@Beanpublic BasicDataSource dataSource() { BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/myblog?characterEncoding=utf-8"); ds.setUsername("root"); ds.setPassword("admin123"); ds.setInitialSize(5); return ds;}
这样,将工程部署至Tomcat上后,展现的HTML页面上的中文数据就可以正常显示了。
阅读全文
0 0
- Spring构建Web应用部署至Tomcat开发过程中的数据编码问题
- tomcat部署web应用过程
- Tomcat 部署Web 应用的过程
- tomcat部署web应用
- Tomcat部署WEB应用
- Tomcat 部署Web应用
- Tomcat部署web应用
- tomcat部署web应用
- tomcat部署web应用
- Tomcat部署Web应用
- Web实际应用中的编码问题
- 开发过程中的字符编码问题
- [bigdata-046] eclipse+spring开发web然后部署到tomcat
- java web开发中的字符编码问题。
- Java web开发中的编码问题
- web开发中的中文编码问题
- web开发中的字符编码问题
- Java web开发中的编码问题
- mybatis在Mapper.xml文件中使用大于,小于时要用 > <
- 从B树、B+树、B*树谈到R 树
- C# aspx获取web.config中的key值
- 自定义View的视图刷新问题
- 数理逻辑习题集(6)
- Spring构建Web应用部署至Tomcat开发过程中的数据编码问题
- 手指在屏幕上滑动,红色的小球始终跟随手指移动。
- sql 查询一列和另一列的关系是不是一对一
- Voxel Space:不到20行代码实现地形渲染
- 手动注册 spring bean
- [nodejs][express]中间件
- datagridview动态绑定以及显示行号
- Java面试准备 --自用
- Android 一套完整的 Socket 解决方案