servlet基础

来源:互联网 发布:如何添加手机淘宝 编辑:程序博客网 时间:2024/06/03 16:08

①   java程序(java类)

②   该 java 程序(java 类)要遵循servlet开发规范

③   serlvet是运行在服务端

④   serlvet 功能强大,几乎可以完成网站的所有功能

⑤   是学习jsp基础


servlet的生命周期(工作流程):

WEB服务器首先会检查是否已经装载并创建了该servlet实例对象。如果是直接进行第④步,否则执行第②步。

装载并创建该Servlet的一个实例对象。

调用Servlet实例对象的init()方法。

创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用service()方法并将请求和响应作为参数传递进去。

WEB应用被停止或重启之前,Servlet引擎将卸载Servlet,在卸载之前调用Servlet的destroy()方法

1.       当serlvet 第一次被调用的时候,会触发init函数,该函数会servlet实例装载到内存.init函数只会被调用一次

2.      然后去调用servlet  的 service函数

3.       当第二次后访问该servlet 就直接调用 service 函数.

4.       当web应用 reload 或者关闭 tomcat 或者关机都会去调用destroy函数,该函数就会去销毁serlvet

5.      Servlet的生命周期

当客户端第一次向web服务器发出一个servlet请求时,web服务器将会创建一个该servlet的实例,并且调用servlet的init()方法;如果当服务器已经存在了一个servlet实例,那么,将直接使用此实例;然后再调用service()方法,service()方法将根据客户端的请求方式来决定调用对应的doXXX()方法;当web应用 reload 或者关闭 tomcat 或者关机,web服务器将调用destroy()方法,将该servlet从服务器内存中删除。

生命全过程:1.加载2.实例化3.初始化 4.处理请求5.退出服务


开发servlet有三种方法

(1)     实现 Servlet接口

(2)     通过继承 GenericServlet

(3)     通过继承 HttpServlet


get 提交 和 post的提交的区别:

①  从安全看 get<post因为get 会把提交的信息显示到地址栏

②  从提交内容看get<post get 一般不要大于2k, post理论上无限制,但是在实际              开发中,建议不要大于64k

③  从速度看 get>post

④  Get可以保留uri中的参数,利于收藏


Servlet的细节问题

1.一个已经注册的Servlet可以被多次映射

2.当映射一个servlet时候,可以多层

3.使用通配符在servlet映射到URL中有两种格式:第一种格式 *.扩展名 比如 *.do *.ss;第二种格式  以/ 开头 同时以 /* 结尾  比如  /*   /news/*

在匹配的时候,要参考的标准:

(1)    看谁的匹配度高,谁就被选择

(2)    *.do的优先级最低


Servlet单例问题

1.当Servlet被第一次访问后,就被加载到内存,以后该实例对各个请求服务.即在使用中是单例.因为 Servlet是单例,因此会出现线程安全问题

2.如果一个变量不需要共享,则直接在 doGet() 或者 doPost()定义.这样不会存在线程安全问题





0 0