18. servlet的生命周期是由tomcat来管理 的。是一个单例模式,能负责servlet这样的一个生命周期,就叫容器,最基本的生命周期的管理 。
19.
<servlet>
<serlvet-name>fs</servlet-name>
<servlet-class>FirstServlet</servlet-class>
</serlet>
<servlet-mapping>
<servlet-name>fs</servlet-name>
<url-pattern>/servlet/FirstServlet</url-pattern>
</servlet-mapping>
/servlet/FirstServlet servlet目录是虚的,没有这个目录。访问的时候要用,访问这个就找到了fs,,,打开了fs,就找到了FirstServlet.
20. 他说开发java的时候有时会遇到jvm 8080端口被占用,遇到这样是因为tomcat也启动了一个java进程,你把进程列表中java.exe占用内存较少的那个结束了就可以了。
21. httplook1251他用了这个工具,能监测http协议执行的过程。
22. 其实先到达GenericServlet中的service(),再根据service()来调用doGet(),doPost(),你是get我就调用doGet().
23. HttpServlet继承了GenericServlet就是在这个类里面有一个service()方法,通过这个方法来调度get和post请求。
servlet是接口,下面是GenericServlet继承了,再是HttpServlet又继承了。
24. 你去看Tomcat对Servlet的实现,他实现HttpServlet,里面写了
25. jar文件就用rar文件解压开,然后里面是不是都是一些.class文件,我的机器上有反编译工具,用那个打开就可以看到里面的东西是什么了,可以看到HttpServlet,就是tomcat实现了的,里面有一个service()方法,这个方法来判断你过来的是什么请求,如果是get就调用doGet(). 我们写的时候继承了HttpServlet,覆盖了,覆盖了就是我们的了。你是get过来,我就用doGet方式处理。
26. 虽说sun对于HttpServlet实现了方法,但是apache中的tomcat对于上一层的接口再实现了一次,有了自己的实现。
27. 我们从事web开发,主要处理两个对象,request,response.
28. servlet它就创建一个实例,怎么服务呢?多线程 ,tomcat还有一个热部署的概念。知道是什么吧,不用解释了。
29. 当浏览器的页面上显示一些如404之类 的错误,怎么出来的呢?都是从servlet里面出来的。你可以看到为什么会报比如405错误,你去看一下,servlet里面是不是有定义什么情况下抛出405错误啊。
30. 当tomcat new一个servlet的时候,会调用init(),是先会在内存中实例化这个servlet,再调用init(),方法这个方法只会调用一次。destroy(){}当我们服务销毁,就会调用这个方法。
servlet是这样初始化的,用自己的无参构造方法,接下来,又调用了初始化方法,然后调用service(),通过service()分发,调用doGet()或doPost(),就一个实例,提供多线程服务,所以存在线程安全问题,
比如,你在servlet里面放一些成员变量,大家一块来改的话,就会出现数据不一致,所以写servlet的时候,应该注意这些问题。
servlet只实例化一次,init()方法也只执行一次。