ServletContext和ServletActionContext有什么区别
答案:2 悬赏:0 手机版
解决时间 2021-02-18 13:25
- 提问者网友:咪咪
- 2021-02-17 20:53
ServletContext和ServletActionContext有什么区别
最佳答案
- 五星知识达人网友:鸠书
- 2021-02-17 21:23
获取ServletAction上下文对象,getServletContext()获取Servlet上下文对象,getRealPath("uplo
全部回答
- 1楼网友:胯下狙击手
- 2021-02-17 21:29
servletactioncontext和actioncontext有着一些重复的功能,在我们的action中,该如何去抉择呢?我们遵循的原则是:如果actioncontext能够实现我们的功能,那最好就不要使用servletactioncontext,让我们的action尽量不要直接去访问servlet的相关对象. 注意:在使用actioncontext时有一点要注意: 不要在action的构造函数里使用actioncontext.getcontext(),因为这个时候actioncontext里的一些值也许没有设置,这时通过actioncontext取得的值也许是null; 同样,httpservletrequest req = servletactioncontext.getrequest()也不要放在构造函数中,也不要直接将req作为类变量给其赋值。至于原因,我想是因为前面讲到的static threadlocal actioncontext = new actioncontextthreadlocal(),从这里我们可以看出actioncontext是线程安全的,而servletactioncontext继承自actioncontext, 所以servletactioncontext也线程安全,而线程安全要求每个线程都独立进行,所以req的创建也要求独立进行,所以servletactioncontext.getrequest()这句话不要放在构造函数中,也不要直接放在类中,而应该放在每个具体的方法体中(eg:login()、queryall()、insert()等),这样才能保证每次产生对象时独立的建立了一个req。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯