Java核心编程之Servlet:
Servlet运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求,响应给浏览器的动态资源!但Servlet的实质就是Java代码,通过Java的API 动态的向客户端输出内容!
Servlet规范:
① Servlet技术!
② Filter技术(过滤器)!
③ Listener技术(监听器)!
实现步骤:
① 创建类实现Servlet接口!
② 覆盖尚未实现的方法(init/Service/Destory)!
③ 在Web.xml进行Servlet的配置!
init(ServletConfig config)
执行时间:Servlet对象创建的时候执行(访问网址)!
ServletConfig : 代表的是该Servlet对象的配置信息!
Service(ServletRequest request,ServletResponse response)
执行时间:每次请求都会执行!
ServletRequest:请求对象,内部封装Http的请求信息!
ServletResponse:响应对象,内部封装响应信息!
destroy()
执行时间:Servlet销毁时执行(关闭TomCat服务器时)!
Servlet生命周期面试题:当服务器开启后,用户第一次访问网址时,创建Servlet对象,执行init()方法,之后每一次请求都会执行Service()方法,当服务器关闭时执行Destory()方法,Servlet对象被销毁!
对MyServlet进行了10次访问,init(),destory(),service(),doGet(),doPost() 一共执行力多少次?request对象创建几个?response创建几个?
10次访问,总共执行1次init()方法,1次destory()方法,10次service()方法,10个request对象和10个response对象!
自定义的Web.xml的信息!
Url-Pattern的基本配置:
① 完全匹配:访问的资源与配置的资源完全相同才能访问到!
② 目录匹配: /目录…/目录…/*(*号代表任意文件)
③扩展名匹配: *.扩展名(Tips:扩展名可以不用/)
//目录匹配和扩展名匹配不要混用!
强调:Servlet对象默认在服务器开启后用户第一次访问时创建,但是可以在Web.xml中写入:
这句话指定Servlet对象在服务器启动时创建,存在多个Servlet对象的情况下可以设置优先级,优先级越高数字越小,建议从3或者5开始!
缺省的Servlet:
只设置一个/构成缺醒的Servlet!
当访问的所有资源都不匹配时,会访问缺省的Servlet,相当于一个托底的设置,避免404错误!
如果在浏览器中URL地址中,不写任何资源,单纯访问:
localhost:8080/WEB002
TomCat内核会去自定义的Web.xml中找Welcome-File-List寻找页面,如果没有就去TomCat中Conf文件夹中找Welcome-File-List,如果还没有,则会报404错误!
HttpServlet类:
① init()
② doGet(HttpServletRequest request,HttpServletResponse response)
③ doPost(HttpServletRequest request,HttpServletResponse response)
④ destroy()