(注:以下版本指的是spring3+hibernate3+struts2)

1,web开发中,servlet对象是否线程安全?

  当一个http请求到来时,web容器的调度线程(Dispach Thread)会从已经初始化的线程池中分配一个工作线程(Worker Thread)来负责处理该请求,该工作线程会调用对应的servlet对象的service方法;如果又一个请求到来,web容器会从线程池中选择另一个线程来服务新的请求。web容器不关心请求的是否是同一个servlet实例。所以,多个请求可能调用同一个Servlet对象,servlet的service方法会在多线程环境中并发执行,若servlet中有内部实例变量,则会产生线程安全问题。

2,为什么声明struts的action时,除了@Controller还要@Scope("prototype")?

  为了线程安全。spring管理的bean在不指定scope情况下,默认为single,也就是单例,众所周知,web服务器中servlet就是以单实例多线程的方式运行,这样会有线程安全隐患;若指定为prototype,每次请求到来,spring都会创建一个新的action交给struts来使用,避免了线程安全问题。

可以结合StackOverflow上的一个问题思考下:http://stackoverflow.com/questions/7621920/scopeprototype-bean-scope-not-creating-new-bean

还有这篇文章,理解有状态和无状态:http://peterwei.iteye.com/blog/960532

3,(将持续更新)

SSH之小问题解惑的更多相关文章

  1. Golang 版的ssh爆破小工具

    源码如下: package main import ( "bufio" "flag" "fmt" "golang.org/x/cr ...

  2. SSH相关小应用

    1.隐藏值:<s:hidden name="bbsTopic.id" value="%{bbsTopic.id}"></s:hidden> ...

  3. ssh整合 小例子

    实现了用户的查插删改操作. 原理:struts负责接收.分发请求.spring采用面向接口编程的思想整合整体框架,负责连接数据库.hibernate负责操作数据库语言. 思路: 1.配置struts的 ...

  4. 一些 ssh 小技巧

    本文来自网易云社区. 作者:沈高峰 ssh 经常需要使用的,每次使用都  ssh  abc@XXX.def.com -p 12138 -i ~/.ssh/id_rsa 来一遍显然太麻烦了,下面分享一点 ...

  5. Linux SSH建立连接过程分析

    https://blog.csdn.net/qwertyupoiuytr/article/details/71213463 SSH建立连接的过程主要分为下面几个阶段: SSH协议版本协商阶段.SSH目 ...

  6. [Web] 网络安全(SSH SSL HTTPS)

    概念 SSH(Secure Shell) 一种安全通信协议 为shell提供加密通信服务 使用了非对称加密和对称加密 对称加密(Symmetric-Key Encryption):只用一个密钥来进行加 ...

  7. Git&GitHub 03 使用 SSH 协议

    注意事项与声明 平台: Windows 10 作者: JamesNULLiu 邮箱: jamesnulliu@outlook.com 博客: https://www.cnblogs.com/james ...

  8. 最全的linux命令大全,shell运维手册

    shell实例手册 0 说明{ 手册制作: 雪松} 1 文件{        ls -rtl                 # 按时间倒叙列出所有目录和文件 ll -rt    touch file ...

  9. [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...

随机推荐

  1. Windows Power Shell

    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能. 它引入了许多非常有用的新概念,从而进一步扩展了您在 W ...

  2. html5--6-1 引入外部样式表

    html5--6-1 引入外部样式表 实例 学习要点 掌握引入外部样式表方法 插入样式的三种方法 内联样式表(行内) 内部样式表(style中) 外部样式表 创建一个外部样式表 在head中使用lin ...

  3. Entityframework连接Mysql遇到的问题

    1.mysql.data.entity的版本一定要与mysql-connector-net的版本保持一致,我用的版本是6.9.12 2.有时会遇到连接MySQL数据库时提示missing server ...

  4. coeforces 665D D. Simple Subset(最大团orsb题)

    题目链接: D. Simple Subset time limit per test 1 second memory limit per test 256 megabytes input standa ...

  5. poj 2420 A Star not a Tree? —— 模拟退火

    题目:http://poj.org/problem?id=2420 给出 n 个点的坐标,求费马点: 上模拟退火. 代码如下: #include<iostream> #include< ...

  6. zlog 纯C日志函数库的简单使用方法

    zlog简述: log是一个高性能.线程安全.灵活.概念清晰的纯C日志函数库. 事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx).C程序员都喜 ...

  7. [转]Eclipse创建Maven项目

    构建Maven项目的完整过程--普通web项目(Eclipse) 进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件) ...

  8. 关于git被误删除的分支还原问题

    在开发过程中, 有可能会将正在开发的本地分支误删, 本地分支被删除时, 如果已经将本地分支的变更推送到了远端, 还没有问题, 如果被删除的本地分支只提交了没有推送到远端, 就悲剧了, 相当于在你上一次 ...

  9. c++中IO输入输出流总结<二>

    1 文件的打开和关闭 1.1 定义流对象 ifsteam iflie;//文件输入流对象 ifsteam iflie;//文件输出流对象 fsteam iflie;//文件输入输出流对象 1.2 打开 ...

  10. Number()、parseInt()、parseFloat()的区别:

    Number().parseInt().parseFloat()的区别: Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是 ...