我最近开始学servlet,想问一下各位:假设有100个用户同一时刻发出一100个请求,比如该请求为提交某页面.我的问题是:
1.servlet容器是创建100个处理该请求的相关servlet类对象还是创建一个servlet类对象来处理该请求?
2.为什么init()方法只调用一次,而service()调用多次?
哪位高手能否说得详细一点,在次谢谢了!
1.servlet容器是创建100个处理该请求的相关servlet类对象还是创建一个servlet类对象来处理该请求?
2.为什么init()方法只调用一次,而service()调用多次?
哪位高手能否说得详细一点,在次谢谢了!
2 根据1题答案可得:init()是在servlet对象生成(new)的时候调用。service()是request访问时调用。
请求的时候 就调用 doget(), dopost()
如果每次请求都生成新的话 服务器的开销太大了
想象一下100个线程 调用同一个静态方法
多线程情况下 一个请求就对应有一个ServletRequest吧
所以需要你编写的servlet 是线程安全的, 估计没有几个人会在servlet类里面声明变量吧! 因为这样做是危险的!你可以还联想下 : jsp不是有个设置 是否线程安全... jsp在后台是被编译成servlet运行的