Web资源
1.静态资源
html,js,css
2.动态资源
servlet/jsp
servlet
servlet其实就是一个java程序,运行在web服务器上,用于接收和响应客户端的http请求。可以将tomcat看作servlet的容器。
静态资源也需要使用servlet,只不过tomcat里面定义好了一个DefaultServlet。
servlet的生命周期:
主要的三个方法:
init方法
// 在创建servlet的实例的 时候,执行该方法。
// 默认的是初次创建的时候才会创建实例
// 一个servlet只会初始化一次,init方法只会执行一次。
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
System.out.println("init...");
}
servlet方法
// 只要客户端来了一个请求那么就执行这个方法。该方法可以被执行多次,一次请求对应一次servlet方法。
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("servlet");
}
destroy方法
// 销毁的时候就会执行该方法
// 该项目从tomcat里面移除的时候调用
// 正常关闭tomcat就会执行,例如tomcat里面的startup.bat
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("destroy");
}
doPost和doGet不算是生命周期方法,所微微的生命周期方法指的是从对象的创建到销毁一定会执行的方法,这两个方法不一定能够执行。
servlet创建实例的时间提前
<servlet>
<servlet-name>hello3</servlet-name>
<servlet-class>com.java.servlet.HelloServlet04</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
在配置的时候,使用load-on-startup,数字越小,启动越早。一般不写负数,从2开始即可。
ServletConfig
得到servlet配置对象 专门用于在配置servlet的信息
ServletConfig config = getServletConfig();
获取到的是配置servlet里面servlet-name 的文本内容
String servletName = config.getServletName();
可以获取具体的某一个参数。
String address = config.getInitParameter("address");
获取所有的参数名称
Enumeration<String> names = config.getInitParameterNames();
为什么需要有这个ServletConfig
自己开发的一些应用,使用到了一些技术,或者一些代码,我们不会。 但是有人写出来了。它的代码放置在了自己的servlet类里面。
刚好这个servlet 里面需要一个数字或者叫做变量值。 但是这个值不能是固定了。 所以要求使用到这个servlet的公司,在注册servlet的时候,必须要在web.xml里面,声明init-params。