(注:以下版本指的是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. hihocoder#1050 : 树中的最长路(树中最长路算法 两次BFS找根节点求最长+BFS标记路径长度+bfs不容易超时,用dfs做TLE了)

    #1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...

  2. LightOJ - 1027 A Dangerous Maze —— 期望

    题目链接:https://vjudge.net/problem/LightOJ-1027 1027 - A Dangerous Maze    PDF (English) Statistics For ...

  3. SQL:内连接、左外连接、右外连接、全连接、交叉连接区别

    有两个表A和表B.表A结构如下: Aid:int:标识种子,主键,自增ID Aname:varchar 数据情况,即用select * from A出来的记录情况如下图1所示: 图1:A表数据表B结构 ...

  4. Peach+Fuzzer

    目录 1 Peach是什么....................................................................................... ...

  5. Spring MVC 和 Struts2 的区别?

    1.请求拦截级别 struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入 struts2实际上是通过setter ge ...

  6. Android自动化测试怎么填写Xpath

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA5sAAAJYCAIAAABjAmXpAAAgAElEQVR4nOzdeZhb5Z0veNV/M88sz7 ...

  7. 【C/C++】任意大于1的整数分解成素数因子乘积的形式

    // #include<stdio.h> #include<math.h> #include<malloc.h> int isprime(long n); void ...

  8. python 基础之第二天

    [root@master script]# vim while_counter.py #!/usr/bin/python # coding: utf-8 sum = 0 counter = 0 whi ...

  9. 【旧文章搬运】关于在指定进程调用KeUserModeCallback的问题

    原文发表于百度空间,2010-10-07========================================================================== 由于KeU ...

  10. 3、css边框以及其他常用样式

    一.边框 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...