中文显示方式也是两种,一种是properties文件,一种是创建一个configuration类来设置utf-8
第一种,新建一个项目,添加web支持,然后新建一个MyServlet文件用来显示中文。
package com.example.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(urlPatterns = "/hehe") public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;character=utf-8"); resp.getWriter().println("/hehe,中文"); resp.getWriter().flush(); resp.getWriter().close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
在没有其它设置的情况下,显示的是乱码,只有在properties文件里添加支持,才能显示中文。
server.servlet.encoding.enabled=true server.servlet.encoding.force=true server.servlet.encoding.charset=UTF-8
第二种和第一种基本一样,也是创建一个MyServlet文件,然后,再创建一个Configuration类。
package com.example.config; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.filter.CharacterEncodingFilter; @Configuration//这个声明表示此类是springboot容器管理配置类 public class MyConfig { // 用一个@Bean来调用一个文件过滤器。 @Bean public FilterRegistrationBean encodingservletRegistrationBean(){ // 新建一个字符过滤器对象 CharacterEncodingFilter characterEncodingFilter=new CharacterEncodingFilter(); characterEncodingFilter.setForceEncoding(true); characterEncodingFilter.setEncoding("utf-8"); // 新建一个过滤器对象 FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(); // 将字符过滤器对象添加到过滤器里去 filterRegistrationBean.setFilter(characterEncodingFilter); // 需要过滤的网络地址样式 filterRegistrationBean.addUrlPatterns("/*"); return filterRegistrationBean; } }
这种方式需要在application.properties中加入
server.servlet.encoding.enabled=true,从而禁用springboot的编码方式!
浙公网安备 33010602011771号