1.Servlet入门
Sun公司提供的用来开发动态web资源的技术,本质上是一段java小程序,能够运行在Servlet容器(Tomcat)当中。
1.写一个类,实现Servlet接口
(1)写一个类继承了GenericServlet
(2)先将Servlet包加入Classpath
(3)javac -d . FristServlet
2.将写好的类注册到tomcat中(web.xml文件中进行配置)
(4)将编译好的Servlet放置到web应用的WEB-INF/classes目录下
(5)在web.xml中进行配置
<servlet>
<servlet-name>FirstServlet</servlet-name> -- 给Servlet起一个名字,仅仅是名字而已
<servlet-class>com.itheima.FirstServlet</servlet-class> -- 具体Servlet 的类全路径名,注意不是文件名
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name> -- 给哪个名字的Serlvet配置对外访问路径
<url-pattern>/servlet/first</url-pattern> -- 配置通过哪个路径去访问此Servlet
</servlet-mapping>
3.Servlet生命周期
Servlet的生命周期:
当Servlet第一次被访问到时,服务器会创建Servlet对象,立即调用Servlet的init方法执行初始化操作。从此这个Servlet一直驻留在内存中为后续的所有对此Servlet的访问服务器。此后每次对Servlet的访问都会造成Servlet中Service方法执行。当服务器关闭或web应用被移除出容器时随着web应用的销毁,Servlet跟着销毁,在Servlet销毁之前服务器会调用Servlet的destory方法,做一些善后工作。
4.Servlet的继承结构
Servlet接口 -- 定义了Servlet应该具有的最基本的方法 init、destory 、service
|
|--GenericServlet -- 对Servlet接口的一个默认实现类,对于一般我们不关注的方法这个类帮我们做了默认实现,除了Service是抽象的方法,需要继承者自己去实现,与协议无关,不具有和协议相关的方法
|
|--HttpServlet -- 在GenericServlet的基础上,基于HTTP协议进行了增强,提供许多和HTTP协议相关的方法,实现了GenericServlet中抽象的Service方法,在Service方法中判断当前的请求方式,如果是get请求,调用doGet()方法,如果是Post请求,调用doPost(),我们如果想要继承HttpServlet实现一个Servlet时,只要继承这个类,覆盖doGet和doPost方法就可以了,一般不推荐直接覆盖Servcie方法。
5.细节
servletmapping标签中:
(1)直接写一个固定的路径,通过这个固定路径来访问当前Servlet
(2)使用*号通配符来进行配置,但是只能是下面两种固定的写法
以/开通并以/*结尾的路径
以*.后缀的方式配置的路径
配置load-on-startup ,使Servlet随着服务器的启动web应用加载后立即创建
缺省Servlet:其他Servlet都不处理的请求,由我来处理.浏览器在访问静态资源、错误提示页面时,都是爸爸web.xml中配置的缺省Servlet在进行输出,所以平常自己就不要配置缺省Servlet,否则会导致静态资源、错误页面无法正确访问。