SSH之小问题解惑
(注:以下版本指的是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之小问题解惑的更多相关文章
- Golang 版的ssh爆破小工具
源码如下: package main import ( "bufio" "flag" "fmt" "golang.org/x/cr ...
- SSH相关小应用
1.隐藏值:<s:hidden name="bbsTopic.id" value="%{bbsTopic.id}"></s:hidden> ...
- ssh整合 小例子
实现了用户的查插删改操作. 原理:struts负责接收.分发请求.spring采用面向接口编程的思想整合整体框架,负责连接数据库.hibernate负责操作数据库语言. 思路: 1.配置struts的 ...
- 一些 ssh 小技巧
本文来自网易云社区. 作者:沈高峰 ssh 经常需要使用的,每次使用都 ssh abc@XXX.def.com -p 12138 -i ~/.ssh/id_rsa 来一遍显然太麻烦了,下面分享一点 ...
- Linux SSH建立连接过程分析
https://blog.csdn.net/qwertyupoiuytr/article/details/71213463 SSH建立连接的过程主要分为下面几个阶段: SSH协议版本协商阶段.SSH目 ...
- [Web] 网络安全(SSH SSL HTTPS)
概念 SSH(Secure Shell) 一种安全通信协议 为shell提供加密通信服务 使用了非对称加密和对称加密 对称加密(Symmetric-Key Encryption):只用一个密钥来进行加 ...
- Git&GitHub 03 使用 SSH 协议
注意事项与声明 平台: Windows 10 作者: JamesNULLiu 邮箱: jamesnulliu@outlook.com 博客: https://www.cnblogs.com/james ...
- 最全的linux命令大全,shell运维手册
shell实例手册 0 说明{ 手册制作: 雪松} 1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file ...
- [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...
随机推荐
- Windows Power Shell
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能. 它引入了许多非常有用的新概念,从而进一步扩展了您在 W ...
- html5--6-1 引入外部样式表
html5--6-1 引入外部样式表 实例 学习要点 掌握引入外部样式表方法 插入样式的三种方法 内联样式表(行内) 内部样式表(style中) 外部样式表 创建一个外部样式表 在head中使用lin ...
- Entityframework连接Mysql遇到的问题
1.mysql.data.entity的版本一定要与mysql-connector-net的版本保持一致,我用的版本是6.9.12 2.有时会遇到连接MySQL数据库时提示missing server ...
- coeforces 665D D. Simple Subset(最大团orsb题)
题目链接: D. Simple Subset time limit per test 1 second memory limit per test 256 megabytes input standa ...
- poj 2420 A Star not a Tree? —— 模拟退火
题目:http://poj.org/problem?id=2420 给出 n 个点的坐标,求费马点: 上模拟退火. 代码如下: #include<iostream> #include< ...
- zlog 纯C日志函数库的简单使用方法
zlog简述: log是一个高性能.线程安全.灵活.概念清晰的纯C日志函数库. 事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx).C程序员都喜 ...
- [转]Eclipse创建Maven项目
构建Maven项目的完整过程--普通web项目(Eclipse) 进行以下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件) ...
- 关于git被误删除的分支还原问题
在开发过程中, 有可能会将正在开发的本地分支误删, 本地分支被删除时, 如果已经将本地分支的变更推送到了远端, 还没有问题, 如果被删除的本地分支只提交了没有推送到远端, 就悲剧了, 相当于在你上一次 ...
- c++中IO输入输出流总结<二>
1 文件的打开和关闭 1.1 定义流对象 ifsteam iflie;//文件输入流对象 ifsteam iflie;//文件输出流对象 fsteam iflie;//文件输入输出流对象 1.2 打开 ...
- Number()、parseInt()、parseFloat()的区别:
Number().parseInt().parseFloat()的区别: Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是 ...