JVM | 编辑器 |
---|---|
JVM让程序运行 | 编辑器产生文件 |
严格进行语法检查 | 编译文件变成二进制(速度快的一方面原因) |
JVM控制存取的安全性问题 | 对文件进行安全性检查,规避大部分错误 |
java创建的对象存放在堆中。java虚拟机会主动察觉不再使用的java对象,内存紧张的时候,垃圾收集器会启动清理垃圾,回收空间
image.png
url指向servlet--->容器创建两个httpservletrequest对象和httpservletresponse对象--->容器根据url找到对应的servlet,为servlet创建线程,塞入两个请求对象--->servlet根据用户的http方法调用相应的方法--->servlet返回响应对象--->service方法结束,线程撤销或销毁,对象不保留,客户端得到相应
image.png
public class MyServletContextListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event){
ServletContext sc = event.getServletContext();
String dogBreed = sc.getInitParamter("breed");
Dog d = new Dog(dogBreed);
sc.setAttribute("dog",d); // 其他servlet就能得到这个值了
}
public void contextDestory(ServletContextEvent event){
// 这里什么都不做
}
}
只有第一个请求 会具有如此复杂的操作
可以在JSP中完成servlet的初始化工作,但是与常规的servlet稍有不同
// 请看下面代码
<web-app>
<servlet>
<servlet-name>email</servlet-name>
<jsp-file>/TestInit.jsp</jsp-file>
<init-param>
<param-name>email</param-name>
<param-value>gaomengjie_1@163.com</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyTestInit</servlet-name>
<url-pattern>/TestInit.jsp</url-pattern>
</servlet-mapping>
</web-app>