① 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()定义.这样不会存在线程安全问题