社区
Web 开发
帖子详情
filter是否有线程安全的问题
s_h_o_w_i_c_y
2011-02-27 08:58:29
如中文编码filter,设置全部变量charset ,然后init里面读取web.xml的配置进行设置,如果在doFilter()里面对charset进行修改,这样是否就存在线程安全的问题??
...全文
609
5
打赏
收藏
filter是否有线程安全的问题
如中文编码filter,设置全部变量charset ,然后init里面读取web.xml的配置进行设置,如果在doFilter()里面对charset进行修改,这样是否就存在线程安全的问题??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
火龙果被占用了
2011-02-28
打赏
举报
回复
[Quote=引用 3 楼 s_h_o_w_i_c_y 的回复:]
这样一个请求如http://ip:port/path?charset=GB2312就把全局变量charset设为GB2312。
而之后另外个请求http://ip:port/path的编码是否就变为GB2312
[/Quote]
会的。
如果只是想针对单独请求的话,可以在 doFilter 中这样:
String c = charset;
if(request.getParamert("charset") != null){
c = request.getParamert("charset");
}
Filter 是在 Servlet 容器启动时就初始化的,因此可以认为是以单例对象存在的,如果一个请求线程对其中的成员变量修改的话,会影响到其他的请求线程,因此认为是多线程不安全的。
宁波朱超
2011-02-27
打赏
举报
回复
[Quote=引用 3 楼 s_h_o_w_i_c_y 的回复:]
引用 2 楼 zhuchao_ko 的回复:
引用楼主 s_h_o_w_i_c_y 的回复:
如中文编码filter,设置全部变量charset ,然后init里面读取web.xml的配置进行设置,如果在doFilter()里面对charset进行修改,这样是否就存在线程安全的问题??
WEB.XML是每次启动的时候容器加载的,话说你改了WEB.XML的内容要生效是不是要重新启动下容……
[/Quote]
你要修改的是成员变量那会造成线程安全问题。
s_h_o_w_i_c_y
2011-02-27
打赏
举报
回复
[Quote=引用 2 楼 zhuchao_ko 的回复:]
引用楼主 s_h_o_w_i_c_y 的回复:
如中文编码filter,设置全部变量charset ,然后init里面读取web.xml的配置进行设置,如果在doFilter()里面对charset进行修改,这样是否就存在线程安全的问题??
WEB.XML是每次启动的时候容器加载的,话说你改了WEB.XML的内容要生效是不是要重新启动下容器呢?
[/Quote]
没说改web.xml啊。就是说比如在doFilter里面这么一句:
if(request.getParamert("charset")!=null){
charset = "GB2312";
}
(web.xml配的可能为utf-8)
这样一个请求如http://ip:port/path?charset=GB2312就把全局变量charset设为GB2312。
而之后另外个请求http://ip:port/path的编码是否就变为GB2312
宁波朱超
2011-02-27
打赏
举报
回复
[Quote=引用楼主 s_h_o_w_i_c_y 的回复:]
如中文编码filter,设置全部变量charset ,然后init里面读取web.xml的配置进行设置,如果在doFilter()里面对charset进行修改,这样是否就存在线程安全的问题??
[/Quote]
WEB.XML是每次启动的时候容器加载的,话说你改了WEB.XML的内容要生效是不是要重新启动下容器呢?
DirectX修复工具 V3.3标准 绿色版
本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击主界面上的“检测并修复”按钮,程序就...
DirectX修复工具 V3.3增强 绿色版
本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 本程序为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击主界面上的“检测并修复”按钮,程序就...
Filter
的
线程安全
问题
6)
Filter
的
线程安全
问题
: 和Servlet一样,为了提高性能,
Filter
也采取多线程模式。即:每一个线程来应答一个用户浏览器,而且这个线程和用户要访问 的目标Servlet的线程是同一个线程。说得更准确一点,当用户访问...
Java:jdk8-并行流
线程安全
问题
解决方案
jdk8 Stream API的出现大大简化了我们对于集合元素的处理代码,对于串行流来说,无需考虑
线程安全
问题
;但是,对于并行流来说,由于它是以多线程的方式并行处理同一个集合中的数据元素的,因此,存在着
线程安全
问题
...
Java
线程安全
问题
原因和解决方案
假如此时CPU又突然调度到了t1线程,由于t1线程上次执行到了save操作,所有此时t1线程就把寄存器中的值写回到内存上,现在内存上的值是1,如果此时又调度到t2线程,t2线程继续执行,add,save操作,执行完了之后,t2...
Web 开发
81,091
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章