1.Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
2.Servlet是Javaweb三大组件之一,作用是处理请求,服务器会把接收到的请求发送给servlet来处理,在servlet中通茶需要1.接收请求数据。2.处理请求。3.完成响应
3.实现servlet的三种方式
(1)实现javax.servlet.Servlet接口
(2)继承javax.servlet.GenericServlet类
(3)继承javax.servlet.HttpServlet类
通常我们我们会选择第三种方法来完成servlet,但学习servlet还需要从javax.servlet.Servlet接口开始学习
4.javax.servlet.Servlet
在这个接口中我们需要重写5个方法
(1)public void init(ServletConfig arg0) throws ServletException {
}
它是生命周期方法,它会在servelet对象创建后马上执行,并且只执行一次!(出生后)
(2)public void destroy() {
}
它是生命周期方法,它会在servlet对象被销毁前调用,并且只会被调用一次!(遗言)
(3)public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
}
它是生命周期方法,他会被调用多次,每次处理请求都会调用这个方法
(4)public ServletConfig getServletConfig() {
return null;
}
用来获取servlet的配置信息
(5)public String getServletInfo() {
return null;
}
用来回去servlet的信息
5.如何让浏览器访问servlet
1.给servlet指定一个servlet路径(让servlet与一个路径绑定在一起)
2.浏览器访问一个servlet路径
* 给servlet配置路径,需要在web.xml中对servlet进行配置
配置好之后,在浏览器地址栏写上http://localhost:8080/Servlet/AServlet就可以访问我们的servlet了
6.servlet生命周期方法
(1)public void init(ServletConfig arg0) throws ServletException {
}
它是生命周期方法,它会在servelet对象创建后马上执行,并且只执行一次!(出生后)(1次)
(2)public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
}
它是生命周期方法,它会在servlet对象被销毁前调用,并且只会被调用一次!(遗言)(1次)
(3)public void destroy() {
}
它是生命周期方法,他会被调用多次,每次处理请求都会调用这个方法。(多次)
7.servlet特性
(1)单例,一个servlet类只有一个对象;当然可以存在多个servlet类
(2)线程不安全的,所以效率高
(3)servlet类由我们来写,但由服务器创建servlet类,并由服务器调用相应的方法
8.ServletConfig方法
1.一个ServletConfig对象,对应一段web.xml中的servlet配置信息
2.API:
String GetServletName(),获取的是
ServletContext GetSerletContext(),获取servlet上下文对象!
String getInitParamerter(String name),通过名称获取指定初始化参数的值
Enumeration getInitParamerterNames():获取所有初始化参数的名称
9.让服务器在启动时就创建servlet
在web.xml中的
其中的非负数决定每一个servlet创建的次序,小的先创建
10.ServletContext(********)
(1).一个项目只有一个ServletContext对象
(2)我们可以在N多个servlet中来获取这唯一的对象,使用它可以给多个servlet传递数据
(3)与天地同寿,这个对象在Tomcat启动时创建,在Tomcat关闭时死去
(4)ServletContext的作用是在所有web应用动态资源之间共享数据,例如在AServlet中向ServletContext对象中保存一个值,然后再BServlet中就可以获取这个值,这就是共享数据。
(5)获取ServletContext
** ServletConfig#getServletContext();
** GenericServlet#getServletContext();
** HttpSession#getServletContext();
** ServletContexteEvent#getServletContext();
(6)域对象
* 域对象的作用就是在Servlet中传递数据
* 域对象必须要有存数据和取数据功能
域对象内部其实有一个map
(7)ServletContext方法
void setAttribute(String name, Object value) 用来存储一个对象,也可以称之为存储一个域属性
Object getAttribute(String name) 用来获取ServletContext中的数据
void removeAttribute(String name) 用来移除ServletContext的域属性
Enumeration getAttributeName() 获取所有域属性名称
(8)使用ServletContext获取初始化参数
** servlet也可以获取初始化参数,但它是局部的参数,也就是说,一个servlet只可以获取自己的初始化参数,不能获取别人的,即初始化参数只为一个servlet准备
** 可以配置公共的初始化参数,为所有的servlet所用,用ServletContext获取
配置