您的位置:首页 > 其它

有关servlet的笔记

2017-04-27 21:42 141 查看
 
Servlet,全称Java Servlet,是用Java编写的服务器端程序。其作用主要是处理客户端的请求并将其结果发送到客户端。web服务器习惯处理静态页面,所以需要一个程序来帮忙处理动态请求(如当前时间)。Web服务器程序会将动态请求转发给帮助程序,帮助程序处理后,返回处理后的静态结果给web服务器程序。这样就避免了web服务器程序处理动态页面。Servlet的本质是一个帮助程序。如下图



servlet工作流程分为三个阶段。init(初始化),service(运行),destroy(销毁)

初始化阶段:

1.Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。

2.然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。

3.Servlet容器创建一个servlet对象。

4.Servlet容器调用servlet对象的init方法进行初始化。

运行阶段:

当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。

 

然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的

 

信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和

 

servletResponse对象。我们不管这个请求是post提交的还是get提交的,最终这个请求都会由service方法来处理。

 

销毁阶段:

当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,然后再销毁servlet对象,

 

同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中,释放

 

servlet所占用的资源,如关闭数据库连接,关闭文件输入输出流等。

servlet没有main方法,所有行为由Container控制。Container就是一个java程序。

简单的来说,servlet就是一个普通的类,这个类最开始由容器比如tomcat加载并实例化。当tomcat收到一个请求时,通过web.xml中的信息将其转到指定的servlet类的实例中处理(若没有则创建该类实例),servlet创建一个线程来处理请求并返回。

Servlet与JSP有以下几种区别:

1.jsp经编译后就是servlet,也可以说jsp等于servlet。

2.jsp更擅长页面(表现)。servlet更擅长逻辑编辑。 (最核心的区别)。

3.在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层。

Servlet开发注意细节:
<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet