如何在普通的Java类里面获取Request对象

 我来答
潭州教育
2017-05-10 · 上网学习,就来潭州!
潭州教育
潭州教育总部坐落于美丽的星城长沙,位于麓谷芯城科技园拥有两座办公大厦。办公面积4万多平方;6000多名师资教学力量。200多门课程;在线学习学员高达1100万名学员,30万VIP学员。
向TA提问
展开全部
  1. import java.io.IOException;  
    import javax.servlet.Filter;  
    import javax.servlet.FilterChain;  
    import javax.servlet.FilterConfig;  
    import javax.servlet.ServletException;  
    import javax.servlet.ServletRequest;  
    import javax.servlet.ServletResponse;  
    import javax.servlet.http.HttpServletRequest;  
      
    public class RequestFilter implements Filter {  
        // 创建线程  
        public static ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<HttpServletRequest>();  
        //把request传入  
        public void doFilter(ServletRequest arg0, ServletResponse arg1,  
                FilterChain arg2) throws IOException, ServletException {  
              threadLocal.set((HttpServletRequest)arg0);  
              arg2.doFilter(arg0, arg1);  
        }  
      
        public void destroy() {  
        }  
      
        public void init(FilterConfig arg0) throws ServletException {  
        }
  2. //<span style="white-space:pre">        </span>得到request对象 HttpServletReques
  3. t request = RequestFilter.threadLocal.get();
  4. }
  5. filter>  
            <filter-name>RequestFilter</filter-name>  
            <filter-class>类路径.RequestFilter</filter-class>  
        </filter>  
        <filter-mapping>  
            <filter-name>RequestFilter</filter-name>  
            <url-pattern>/*</url-pattern>  
        </filter-mapping>  
        <filter-mapping>  
            <filter-name>RequestFilter</filter-name>  
            <url-pattern>*.do</url-pattern>  
        </filter-mapping>
  6. 如果是这样的话,我们需要使用一个 ThreadLocal 变量,我们把当前  request 的变量绑定到里面,在一个 request 请求的生命周期内我们在方法调用的各个更深的层次中都可以直接使用它而不需要在每个方法中都传递这个 request 参数,保存在某个地方就容易导致因为多个请求共用同一个实例而出问题,所有 context 相关的变量不保存在任何业务类相关并且可能被多线程共用的对象实例中才是保证不会出现线程安全问题的途径。

    例如,这个例子中我们只要把 web.xml 中配置好 ContextFilter 后它就会自动在请求开始时绑定一个 context,结束后自动销毁,在这中间的任何时刻我们都可以通过 MyWebContext.getCurrentContext() 得到我们的 HttpServletRequest 实例和其它相关的 context 变量:
esllovexq
2016-11-11 · TA获得超过244个赞
知道小有建树答主
回答量:526
采纳率:50%
帮助的人:122万
展开全部
类成员 定义一个 HttpServletRequest request;
但是用不了,空指针异常
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式