开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术:Servlet原理】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/80/detail/15960
Servlet原理
内容介绍
一、原理介绍
二、例子
一、原理介绍
Servlet 是运行在应用服务器上面的JAVA程序,但它并不是独立运行的,它是在一个容器中间运行的,Servlet 的容器可以认为是应用服务器,那 Servlet 是 JAVA 1的标准,那常见的 tomcat 和 jt 都是符合 JAVA 1 的 Servlet 的标准的,那当这样的 Servlet 的容器接收到前端发过来的atpp的请求的时候,它会去调用对应的 Servlet 的程序,在 Servlet 程序中间可以处理从前端发过来的数据读取数据库,用JAVA代码去写任何想写的处理代码,最后产生结果通过 atpp response 的方式返回
给前端。
那然后来仔细的探讨一下 Servlet 的容器的工作原理是什么,当 Servlet 的容器接收到前端发过来的 HTTP 请求以后,它首先会创建一个HTTP的 request 对象,用来把前端窗外的信息放到这个 HTTP 的 request 对象中间,它同时也创建了一个 Response 对象,它则用于将来把传过去的数据放到这个对象中间,然后就会把它传回去,然后它会根据在配置文件中间也就是yxl中间所定义的内容,找到这个请求所对应的Servlet 的对象,然后使用线程的方式去执行这个 Servlet 对象的 Servlet 的方法,把这个HTTP的request对象和HTTP的response对象作为参数传给这个Servlet 的方法,在 Servlet 方法中间,它会根据 http 的请求的类型去调用对应的度的方法,比如说如果是get的请求,它就会去调度 get 的方法,如果是 post 的请
求,就会调度 post 的方法。
这些方法都会把前面创建好了的 HTTP 的 request 对象和 response对 象作为参数传进去。在这些度的方法中间可以获取 HTTP request 对象,从前面传来的数据,然后去处理这些数据,把结果最后放到 HTTP 的 request 对象中间传回去,然后可以看到在这个过程中间 Servlet 的容器起了非常重要的地位,它首先负责了 HTTP 协议的通讯的部分,但是在 JAVA 中间完全不需要关心 HTTP 的协议是怎样完成的,仅仅知道从已经创建好的 HTTP 的 request 对象中间可以拿到从前端传过来的
数据,然后想传回到前端的数据,把它放到 HTTP Response 对象中间就可以了。
Servlet 的容器同样也负责了Servlet 对象的创建,它会把 HTTP 的请求对应到在配置中所定义的 Servlet 对象中间,实际上容器会全程负责收这样的全生命周期,它提供了 listener 可以在 Servlet 的对象的创建初始化使用,一直到销毁的整个过程
中间在任意的阶段加入自己想要做的代码。
Servlet 的容器还提供了一定的安全性的功能,它可以定义拦截器去检查 HTTP 请求,从而提升服务器的安全性。
Servlet 的容器最主要的特性是支持多并发,它自己多现成的方式来支持多个用户同
时访问服务器。
二、例子
然后来看一个简单的 Servlet 例子,这个例子在 spring folk 目录底下,这底下有两个工程都是 Servlet 的,一个是 Servlet-idea,一个是 Servlet -Maven,这两个工程的代码是基本上一样的,只不过是一个是 idea 的工程,一个是的 Maven 工程。那然后挑这个 idea 的工程来看,它这个工程中间一定有三个 Servlet 。