1.首先说Servlet API:servlet的命名:server+applet

Servlet的框架是由两个Java包组成的:javax.servlet与javax.servlet.http。

在javax.servlet包中定义了所有的Servlet类都必须实现或者扩展的通用接口和类。

在javax.servlet.http包中定义了采用Http协议通信的HttpServlet类。

也就是说,二者有一定的独立性。开始我始终认为,HttpServletRequest是servlet产生的,但我的项目中没有用到servlet,又哪来的这个对象呢?当知道二者的独立性时,就有

点明了了。

2.关于Tomcat:

它实现了servlet API.也就是说,它的内部,定义了servlet中接口的实现类,并且在它运行时,将一些实现类自动地实例化。

Tomcat 是Web应用服务器,是一个Servlet/JSP容器.Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品. 它的处理流程如下:

1、Web客户向Servlet容器(Tomcat)发出Http请求

2、Servlet容器分析客户的请求信息

3、Servlet容器创建一个HttpRequest对象,将客户请求的信息封装到这个对象中

4、Servlet容器创建一个HttpResponse对象

5、Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数

传给 HttpServlet对象

6、HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息

7、HttpServlet调用HttpResponse对象的有关方法,生成响应数据

8、Servlet容器把HttpServlet的响应结果传给Web客户

看到这个流程了,自然也就知道,虽然我的Struts2中没有用到servlet,但是由于前四步中,已经产生了HttpServletRequest和response对象,所以,Struts2可以使用了。

对于整体的理解就是这样了,至于业务逻辑的实现,就是既可以用servlet来实现处理,跳转,也可以用sturts2的过滤器来来完成。

一个容器中有多个servlet,只不过是每一个servlet都是单例模式, 并且通过多线程,来处理多个用户的响应。

最新文章

  1. linux xorddos样本分析2
  2. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)D Dense Subsequence
  3. 在Window下安装Oracle 12C Cloud Control Agent
  4. iOS地址编码解析
  5. 【转】Eclipse+PyDev 安装和配置
  6. ubuntu cloud-archive 软件包 无法验证包来源
  7. javaweb学习总结二十三(servlet开发之线程安全问题)
  8. st_mode 的位定义
  9. WPF converter
  10. Struts2的DMI跟SMI
  11. Linux启动时显示Grub命令行及修改
  12. JDK 和 OpenJDK 的区别
  13. tp3
  14. 003.MongoDB主要概念
  15. Docker入门4------Dockerfile
  16. JAVA动态编译辅助类
  17. Axis2发布服务,支持Tomcat和Weblogic的SSHWeb项目部署
  18. maven Dynamic Web Module 3.0 requires Java 1.6 or newer
  19. Android下拉刷新控件android-Ultra-Pull-To-Refresh 使用
  20. Angular material mat-icon 资源参考_Images

热门文章

  1. appium+python自动化37-adb shell模拟点击事件(input tap)
  2. mysql字符集和校对规则(Mysql校对集)
  3. 解决: Project facet Java version 1.8 is not supported
  4. node操作mongoDB数据库的最基本例子
  5. 【BZOJ】1913: [Apio2010]signaling 信号覆盖(计算几何+计数)
  6. SHUTDOWN: waiting for active calls to complete
  7. Java Thread 多线程同步、锁、通信
  8. Spring中引质增强的安全
  9. 给深度学习入门者的Python快速教程
  10. Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/../thinkphp/start.php) is not within the allowed path(s):