zoukankan      html  css  js  c++  java
  • 2阶——ServletContext对象,与简单的文件上传下载

    1:ServletContext对象主要的作用: (域对象,获取mime, 获取服务文件的路径)

         //在一个servlet中,几种获取servletContext对象的方式
            request.getServletContext();
            this.getServletContext();    //this这里其实代表的是tomcat对象
            ServletConfig servletConfig = this.getServletConfig();
            servletConfig.getServletContext();

          >获取mime类型

            ServletContext servletContext = this.getServletContext();
            String mimeType = servletContext.getMimeType("a.jpg");
            System.out.println(mimeType); //图片的mime是 image/jpeg

         >获取文件的真实路径(服务器)

            //当资源文件在web下时的获取方式
            String webpaht = servletContext.getRealPath("/b.properties");
            System.out.println("webpath"+webpaht);  //webpath  D:WebDemo01outartifactsWebDemo01_war_exploded.properties
    
            //当资源文件在WebInf下时的获取方式
            String webInfPath = servletContext.getRealPath("/WEB-INF/c.properties");
            System.out.println("webInfPath"+webInfPath);  //webInfPath  D:WebDemo01outartifactsWebDemo01_war_explodedWEB-INFc.properties
    
            //当资源文件在src下时的获取方式
            String srcPath = servletContext.getRealPath("/WEB-INF/classes/a.properties");
            System.out.println("srcPath"+srcPath);   //srcPath  D:WebDemo01outartifactsWebDemo01_war_explodedWEB-INFclassesa.properties

    //简单文件上传原理

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        //接受传递过来的文件名字
    String filename
    = request.getParameter("filename");

    //获取它的mime类型 String mimeType
    = this.getServletContext().getMimeType(filename); //获取需要下载文件的路径 String path = this.getServletContext().getRealPath("/img/" + filename); FileInputStream fin = new FileInputStream(path); //加载进内存 String filename_new = new Date().getTime()+filename;    response.setHeader("content-type",mimeType);


        //解决中文文件名乱码问题
        String agent = request.getHeader("user-agent");
        filename_new = DownLoadUtils.getFileName(agent,filename_new);
    
            response.setHeader("content-disposition","attachment;filename="+filename_new);
    
            ServletOutputStream os = response.getOutputStream();
    byte[] bytes = new byte[1024]; int len = 0; while ( (len = fin.read(bytes) )!= -1){ os.write(bytes,0,bytes.length); } fin.close(); }

    上传文件名乱码问题

    坚持
  • 相关阅读:
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    Java实现 LeetCode 803 打砖块 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    Java实现 LeetCode 803 打砖块 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    英文标点
    post sharp 与log4net 结合使用,含执行源码 转拷
  • 原文地址:https://www.cnblogs.com/gaoSJ/p/12922013.html
Copyright © 2011-2022 走看看