Servlet和struts2

servlet是单例,线程安全,

每次请求都是由第一个请求到来后建立的那个servlet招呼,所以servlet里面不能有成员变量;

struts2是通过一个servlet负责招待每个到来的线程,

并为这个线程向action工厂要一个全新的action,并把它们俩放进一个叫Threadlocal的容器中,直到线程断掉,这些东西才被gc这个收垃圾的收走。

所以struts2是多线程的。当然struts2实现上复杂很多,比如负责各种转换的拦截器


可以说Struts2本质还是一个Servlet

(在S1中用于整体控制的是一个Servlet;S2中是一个Filter,其实也可把它看作是Servlet),

只是对Servlet进一步的封装罢了打个比方:

做Web项目,好比建房子。Servlet好比木材,用一根根的木材搭,也可盖起房子,只是速度慢而已;

而Struts2好比是用木材做好的一个房子大概结构,要建房子时,只需把它拿过来,再往其里面添砖加瓦,修修补补,就能很快盖好房子,这要比直接使用Servlet要快得多

比喻可能不是很贴切,但它们的关系差不多是这样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值