java调试docker Tomcat创建文件乱码问题代码

2020-11-27  本文已影响0人  sunland_0416

测试tomcat上通过servlet新建文件名称含有中文乱码时是否是环境问题,docker环境,tomcat环境,宿主机环境

//webapps/ROOT/WEB-INF/web.xml
<web-app>
    <servlet>
        <servlet-name>WriteFileServlet</servlet-name>
        <servlet-class>WriteFileServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>WriteFileServlet</servlet-name>
        <url-pattern>/WriteFileServlet</url-pattern>
    </servlet-mapping>
</web-app>
//webapps/ROOT/WEB-INF/classes/*.class
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Properties;
import java.io.File;
import java.nio.charset.Charset;
import java.util.Calendar;

public class WriteFileServlet extends HttpServlet {
    private String message;
    public void init() throws ServletException{
        message="Hello World!";
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        doPost(request,response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        response.setContentType("text/html");
        PrintWriter out=response.getWriter();
        out.println("<h1>"+message+"</h1>");

        Properties properties=System.getProperties();
        System.out.println("file.encoding编码"+properties.getProperty("file.encoding"));
        System.out.println("sun.jnu.encoding编码"+properties.getProperty("sun.jnu.encoding"));
        System.out.println(Charset.defaultCharset());
        
        String fileName="";
        fileName="【"+Calendar.getInstance().getTimeInMillis()+"】测试专用文件名"
        File f = null;
        String savePath="";
        savePath="/home/test";
        fileName=String.valueOf(savePath)+fileName+".xls";
        System.out.println(fileName);
        f=new File(fileName);

        try{
            boolean fvar=f.createNewFile();
            if (fvar){
                System.out.println("新建文件成功!");
            }
             else{
                System.out.println("新建文件失败!文件已存在!");
            }
        }catch (IOException e){
            System.out.println(e);
        }
    }
    public void destroy() {
    }
}

配置好后,可以直接通过http://localhost:8080/WriteFileServlet访问

上一篇下一篇

猜你喜欢

热点阅读