现在Servlet告一段落,进入jsp一段时间了。从个人的理解来说,觉得学完Servlet以后对jsp有了一个不一样的理解,jsp就是一个Servlet。因为在tomcat执行的过程中,先将jsp,翻译成了java代码,保存在了_jspService()方法中,而这个方法,就是被service(HttpServletRequest request,HttpServletResponse response)调用,是tomcat内部实现的。
Servlet是一个接口,我们平时称的servlet是Servlet这个体系,只要是implements或是extends都称为servlet。
对于servlet来说,就不得不提到它的生命周期,一般来说,当一个servlet被初次访问时,就开始创建,并执行的init(……)方法,然后一直存在内存中,直到服务器正常关闭,destroy()才执行,或是相应web应用移除时才会消除;但是也可以通过load-on-startup进行配置,改变它的实例化时间,即从启动web应用时,就可以创建,这样做可以让用户减少等待时间。一旦实例化以后,用户下次访问的时候,就不会再创建该servlet对象了,就不再创建了,因为在servlet是由web服务器实现的,是单例的,如果出现多个用户同时访问该servlet对象那么,就开启多个线程,这样更节约服务器的资源。
和servlet相关的request则是封装请求数据的,tomcat对提交的数据逐一进行解析,并封装到request对象中特定的map中,再交给service处理,处理完成后,封装到response中,然后再由tomcat解析成http相应的响应信息,发送浏览器,最终展示给用户。整个这个过程就是一次请求响应过程。