zoukankan      html  css  js  c++  java
  • 在spring MVC的controller中获取ServletConfig

    在使用SmartUpload进行文件上传时,须要用到srevletConfig:


    假设是在servlet中写当然是非常easy实现的:

            private ServletConfig config;
    	//初始化Servlet
    	final public void init(ServletConfig config)
    			throws ServletException{
    		this.config=config;
    	}

    init方法会在servlet初始化时获取到servletConfig.

    可是在Controller中怎么获得呢?经过小编多方请教,能够通过继承ServletConfigAware,ServletContextAware这两个接口来实现:

    package module.system.controller;
    
    import java.io.IOException;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import module.system.common.FileLoad;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.context.ServletConfigAware;
    import org.springframework.web.context.ServletContextAware;
    /**
     * 文件上传下载.
     * 
     */
    @Controller
    @RequestMapping("/fileLoad")
    public class FileLoadController implements ServletConfigAware,ServletContextAware{
    	
    	private ServletContext servletContext;
    	@Override
    	public void setServletContext(ServletContext arg0) {
    		this.servletContext = arg0;
    	}
        private ServletConfig servletConfig;
    	@Override
    	public void setServletConfig(ServletConfig arg0) {
            this.servletConfig = arg0;
    	}
    	
    	@RequestMapping(value = "/upload.do", method = RequestMethod.POST)
    	@ResponseBody  //此注解表明返回值跳过视图处理部分。直接写入 http response body中
    	public String upload(HttpServletRequest request,HttpServletResponse response) {
    		 
    		FileLoad fileLoad = new FileLoad();
    		try {
    			fileLoad.upload(request, response,servletConfig);
    		} catch (ServletException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return "";
    	}
    
    	
    }
    

    里边这个upload方法是另外写的一个方法,将会在下一篇文章中介绍。

    通过这样就能够得到servletConfig了



  • 相关阅读:
    第二周:If判断语句程序当中的作用简介
    普通B/S架构模式同步请求与AJAX异步请求区别(个人理解)
    第一周:Java基础知识总结(1)
    silverlight 碰撞检测
    超强silverlight绘图
    javascript 判断一个对象是否具有指定名称的属性
    关于IE的RegExp.exec
    浏览器 禁止选择
    silverlight 无限制坐标系统
    CSS Sprite样式生成器网页制作缺她不可
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5125127.html
Copyright © 2011-2022 走看看