action 线程问题。

问题描述

比如现在有个Action,叫CZaction,有很多用户会访问这个action,这个action有对数据库操作,用线程Thread.sleep(1000);睡眠一秒才返回给用户。我有这些疑问:1.如果很多用户访问这个action,睡眠线程会不会导致返回的action混乱?就是本来是返回给a的却返回给b了? 2.如果不用mapping.findForward()到其他页面,用response.getWriter().print();它是否会返回给正确的访问者?就是一个访问者对应一个它自己的response.getWriter().print();???

解决方案

每个线程都是有名字的,不用担心程序会搞错第二个也不用担心的,拦截器会帮你弄好转发的
解决方案二:
额,每个用户不是都有一个线程么?怎么可能会发生混乱呢?

时间: 2024-11-08 20:26:29

action 线程问题。的相关文章

浅析Struts1和Struts2的Action线程安全问题

这是由于Servlet的工作原理产生的.我们先来简单回顾一下Servlet的生命周期"初始化->init->service->destroy->卸载". 这里大家都知道,我们在web.xml里面定义一个servlet的时候,我们可以给他们设置一个"load-on-startup" 的值,如果 Servlet 的 load-on-startup 配置项大于 0,那么在 Context 容器启动的时候就会被实例化,并且tomcat给每一个serv

struts2 action 线程安全同步问题

问题描述 action在配置文件里的属性为:scope="prototype"在高并发请求一个action的时候,怎么解决数据不被重复验证!谢谢!在下面访问的时候出现都修改了数据public String threadTest(){HttpServletRequest request = ServletActionContext.getRequest(); product = productService.getProduct(11440);if(product.getStatus()

path-struts1框架action跳转的问题

问题描述 struts1框架action跳转的问题 <action path="/admin.catalog.datas" extends="/query.base"> </action> <action path="/admin.catalog.node.datas" extends="/query.base"> </action> # 第一个action中的forward是跳

java笔试题

v下面有关JVM内存,说法错误的是? A.程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的 B.Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的 C.方法区用于存储JVM加载的类信息.常量.静态变量.即使编译器编译后的代码等数据,是线程隔离的 D.原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的 解析:方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域. 在方法区中,存储了每个

手把手教你用ViewPager自定义实现Banner轮播_Android

欢迎大家关注Android开源网络框架NoHttp:https://github.com/yanzhenjie/NoHttp  我们在实际开发中,很多App都会在做一个广告轮播器(可能是图片,可能是其他View),很多同学都是使用别人封装好的或者直接使用ViewPager自己来改,但是有人可能并不理解里面的原理,或者有人遇到了手势滑动冲突.我们今天就用150行代码实现一自定义的广告轮播器并不干扰原来View滑动事件. 本例代码源码及Demo传送门 效果演示 需求分析.解决方案 轮播器最重要的几个

请教,Struts2 中对数据库连接使用单例模式

问题描述 我的同事设计了在Struts2中对数据库连接使用单例模式,我问他如果连接只有一个实例,多用户下怎么办:他说Struts2可以确保多线程,我不太懂,这样设计行吗?程序如下:public class DatabaseInteraction { private static Statement m_statement; private static Connection m_connection; private boolean m_stateConnection = false; priv

安全领域不存在最佳解决方案?

联邦银行(澳大利亚金融服务供应商)出版过这样一篇名为"ATM卡信息读取和PIN号码 获取指南"的报告,报告指出,信用卡信息读取技术主要是通过盗取ATM卡背面磁条的数据来进行的,用于读取信用卡磁条信息的设备和卡片的 大小差不多,通常会在制造ATM的工厂在ATM机的上面或者旁边安装这种读卡器. 然后诈骗者会安装另一种设备来获取与用户信用卡相关的PIN号码,在强光的照耀下,可以发现ATM的键盘上安装有这种设备,或者在发生器和屏幕的旁边,也就是说,可能在机器的任何位置.该报道还提供了被安装了读

15.7. Action 中使用线程

背景,在Action中发送邮件,阻塞程序继续执行并返回500,使用 Thread 实现异步发送,因为我们并不关心邮件是否到达,只需正常发送即可. public String execute(){ ... ... try { // Send email Thread sendmail = new Thread(new Runnable() { @Override public void run() { try { log.info("sendEmail Begin"); sender.s

Servlet和JSP的线程安全问题

js|servlet|安全|问题 编写Servlet和JSP的时候,线程安全问题很容易被忽略,如果忽视了这个问题,你的程序就存在潜在的隐患. 1.Servlet的生命周期 Servlet的生命周期是由Web容器负责的,当客户端第一次请求Servlet时,容器负责初始化Servlet,也就是实例化这个Servlet类.以后这个实例就负责客户端的请求,一般不会再实例化其他Servlet类,也就是有多个线程在使用这个实例.Servlet之所以比CGI效率高就是因为Servlet是多线程的.如果该Ser