美文网首页
java调试docker Tomcat创建文件乱码问题代码

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

作者: sunland_0416 | 来源:发表于2020-11-27 14:44 被阅读0次

    测试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访问

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/hnjxwktx.html