知识学习——Servlet基础

Servlet 生命周期

  • 通过调用 init () 方法进行初始化
  • 调用 service() 方法来处理客户端的请求
  • 通过调用 destroy() 方法终止
  • 最后由 JVM 的垃圾回收器进行垃圾回收
public class ServletTest extends HttpServlet {
    //继承HttpServlet
    public void destroy() {
        //销毁方法
        super.destroy();
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //处理get请求
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //处理post请求
    }

    public void init() throws ServletException {
        //
    }
}

Servlet配置

//Servlet的名称和具体位置

    RegServlet
    servlet.RegServlet

//Servlet的名称和映射的地址,url-pattern可配置多个

    RegServlet
    /servlet/RegServlet

ServletConfig和ServletContext

ServletConfig接口

在servlet运行期间,经常需要一些辅助信息。我们可以在web.xml中使用一个或者多个元素进行配置。当Tomcat初始化一个Servlet时,会将其配置信息封装到一个servletConfig对象中。

//Servlet的名称和具体位置

    RegServlet
    servlet.RegServlet
      
        encoding  
        utf-8  
      

//Servlet的名称和映射的地址,url-pattern可配置多个

    RegServlet
    /servlet/RegServlet

ServletConfig常用方法

  • String getInitParameter(String name) 根据name返回对应的初始化参数值
  • Enumeration getInitParameterNames() 返回一个Enumeration对象,包含所以初始化参数名
  • ServletContext getServletContext() 返回一个当前web的ServletContext对象
  • String getServletName() 返回当前Servlet的名字
public void doGet(HttpServletRequest request, HttpServletResponse response) throws   ServletException, IOException {
        ServletConfig config=this.getServletConfig();
}

ServletContext接口

在Servlet容器启动时,会在每个Web应用创建一个唯一的ServletContext对象代表当前应用,该对象不仅封装了当前web应用所有信息,还实现了多个Servlet之间的数据的共享。

获取web程序的初始化参数


  
    test
    one
  

可以使用改接口定义的getInitParameterNames() ,getInitParameter(String name)方法来获取参数值

public void doGet(HttpServletRequest request, HttpServletResponse response) throws   ServletException, IOException {
        ServletContext context=this.getServletContext();
        Enumeration Names=context.getInitParameterNames();
        while(Names.hasMoreElements()){
            String name=Names.nextElement();
            String value=context.getInitParameter(name);
        }
}

实现多个Servlet对象共享数据

  • Enumeration getAttributeNames() 返回所有属性名
  • Object getAttribute(String name) 根据名字返回对应的属性值
  • void removeAttribute(String name) 根据属性名删除匹配的属性
  • void setAttribute(String name,Object obj) 设置属性

读取web应用下的资源文件

  • set getResourcePaths(String path) 返回set集合,包含资源项目内子目录和文件目录的路径名称,path必须以(/)开始
  • String getRealPath(String path) 返回绝对路径
  • URL getResource(String path) 返回映射到某个资源文件的URL对象
  • InputStream getResourceAsStream(String path) 返回映射到某个资源文件的InputStream输入流对象。

你可能感兴趣的:(知识学习——Servlet基础)