一、Servlet接口中的这些方法中编写什么代码?什么时候编写这些方法?
1、无参构造方法:以后就不需要再考虑构造函数了
2、init方法:
以上两个方法都是执行一次;若系统要求在对象创建时刻执行一段特殊的程序,建议使用init方法。
在使用init方法时,对象已经创建了;
3、service方法
这个方法是必须要重写的,因为使用这个方法来完成业务逻辑的处理,请求的处理,以及完成响应;
4、destroy方法
若希望在销毁时刻执行一段特殊的代码,需要将这段代码编写到destroy方法;
5、Servlet对象的生命周期
实例化对象----》init方法初始化对象----》service方法-----》destroy方法---》销毁对象;
二、研究javax.servlet.ServletConfig接口
1、javax.servlet.ServletConfig是接口
2、Apache Tomcat服务器实现了Servlet规范,Tomcat服务器专门写了了一个ServletConfig接口的实现类;
3、javaweb程序员在编程的时候,一直是面向ServletConfig接口去完成调用,不需要关心具体的实现类;
4、Tomcat服务器是一个实现了Servlet规范和JSP规范的容器;
5、ServletConfig中有哪些常用的方法?
String getInitParameterValue(String name)----通过name获得value,
6、ServletConfig到底是什么?
ServletConfig是一个Servlet对象的配置信息对象
一个servlet对象对应一个ServletConfig
7、将init方法上的ServletConfig参数移动到service方法中,因为我们程序员主要编写的方法是service方法,我们可能需要在service方法中使用ServletConfig参数;
定义一个实例变量就可以了;
三、研究javax.servlet.ServletContext
1、javax.servlet.ServletContext是一个接口规范;
2、Apache Tomcat服务器用一个类实现了ServletContext的接口;
3、Javaweb程序员只需要面向接口编程即可,不需要关系Tomcat的具体实现;
4、ServletContext到底是什么?什么时候创建?什么时候被销毁?
一个Servlet对应一个ServletConfig,100个Servlet对应100个ServletConfig;
所有的Servlet共享一个ServletContext;
ServletContext是Servlet上下文;
一个webapp只有一个ServletContext对象
一个webapp只有一个web.xml文件,web.xml文件服务器启动阶段被解析
一个webapp只有个一个ServletContext,ServletContext在服务器启动是被实例化
ServletContext在服务器关闭时会被销毁
ServletContext对应的是web.xml文件,是web.xml文件的代表;
ServletContext是所有Servlet对象四周环境的代表,代表的是所有Servlet对象在同一个App中公享的东西;
所有的用户若想共享同一数据,可以将这个数据放到ServletContext对象中。
一般ServletContext对象中的数据是不建议修改的,不然会引起线程安全的问题;
5、ServletContext接口中有哪些常用的方法?
<a href = "/webappname/doSome"></a>
web.xml中的url-pattern
<url-pattern>/doSome</url-pattern>
form表单中的action属性
<form action = "/webappname/doSome"></form>
String realPath = application.getRealPath("/WEB-INF/resources/do.properties");
四、Servlet的欢迎界面
1、关于一个web站点的欢迎界面的设置
假设在WebRoot目录下创建login.html,想让login.html作为整个web的欢迎界面;应该这样设置:
在xml文件中做设置;
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
2、为什么要做欢迎界面?
为了访问更加方便,设置了欢迎界面之后,访问改webapp即可,自动定位欢迎界面;
3、如何设置欢迎界面?
注意路径的设置即可;
4、欢迎界面可以设置多个,越在上面的优先级越高。而且欢迎界面不一定是HTML,也可以是servlet;
【注意】欢迎界面的路径不需要“/”;
5、配置的优先级
全局配置:CATALINA_HOME/conf/web.xml
局部配置:CATALINA_HOME/webapps/webapp/WEB-INF/web.xml
注意:就近原则
若有一个页面是index.html index.htm index.jsp这些都是默认的欢迎界面,在全局配置中已经配置过了;