社区
Web 开发
帖子详情
filter是否有线程安全的问题
s_h_o_w_i_c_y
2011-02-27 08:58:29
如中文编码filter,设置全部变量charset ,然后init里面读取web.xml的配置进行设置,如果在doFilter()里面对charset进行修改,这样是否就存在线程安全的问题??
...全文
666
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 容器启动时就初始化的,因此可以认为是以单例对象存在的,如果一个请求线程对其中的成员变量修改的话,会影响到其他的请求线程,因此认为是多线程不安全的。
朱超ZhuChao.Tech
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
朱超ZhuChao.Tech
2011-02-27
打赏
举报
回复
[Quote=引用楼主 s_h_o_w_i_c_y 的回复:]
如中文编码filter,设置全部变量charset ,然后init里面读取web.xml的配置进行设置,如果在doFilter()里面对charset进行修改,这样是否就存在线程安全的问题??
[/Quote]
WEB.XML是每次启动的时候容器加载的,话说你改了WEB.XML的内容要生效是不是要重新启动下容器呢?
ubuntu出现有线已连接却无法上网的解决方法(ubuntu连不上网)
本文提供了解决Ubuntu系统中常见的网络
问题
的方案,包括有线连接正常但无法上网的情况。通过调整系统的网络配置和参数,如rp_
filter
和ip_forward等,帮助用户快速恢复网络连接。
[JAVA]ThreadLocal在servlet和
filter
中使用应该注意的
问题
探讨Servlet与
Filter
在多线程环境下如何避免
线程安全
问题
,介绍ThreadLocal的正确使用方法,确保每个线程拥有独立的变量副本。
Filter
详解
本文介绍了JavaWeb中的
Filter
组件,它是
线程安全
的WEB组件,主要用于请求和结果的拦截。详细讲解了
Filter
的三大方法:init、do
Filter
和destroy,并通过示例展示了如何实现编码过滤器、登录拦截器和非法文字拦截器,强调了它们在实际应用中的作用和配置方式。
asmx web服务调用无效 参数_Web三大组件-
Filter
本文详细解析
Filter
在JavaWeb中的拦截器作用,涵盖请求预处理、响应后处理,以及
Filter
链的组织和生命周期。了解如何配置
Filter
处理全站乱码、安全控制和性能优化,同时提供关键配置和执行顺序指南。
Ubuntu台式机有线没法上网
当Ubuntu台式机的有线网络无法连接时,可能是驱动
问题
。可以通过lspci找到以太网驱动,从Intel官网下载并安装最新驱动。如果安装后仍无法上网,尝试使用ethtool调整网卡设置,或者用sudo dhclient eth0获取IP地址。如果以上方法无效,可以设置静态IP,修改DNS,甚至调整系统配置如rp_
filter
。必要时重启网络服务或电脑。
Web 开发
81,111
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章