Servlet快速入门、Servlet、ServletContext对象

Servlet简介:

Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API 动态的向客户端输出内容。

Servlet快速入门:

实现步骤:

1.创建类实现Servlet接口

2.覆盖尚未实现的方法---重点实现service方法

3.在web.xml进行servlet的配置

public void init(ServletConfig arg0) throws ServletException {
  System.out.println("Servlet创建了");
}
public void service(ServletRequest arg0, ServletResponse arg1) throws  ServletException, IOException {
  System.out.println("Servlet被请求了");
}
public void destroy() {
  System.out.println("Servlet销毁了");
}

 

<servlet>
          <servlet-name>MyServlet</servlet-name>
          <servlet-class>com.oracle.demo01.MyServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>MyServlet</servlet-name>
          <url-pattern>/MyServlet</url-pattern>
      </servlet-mapping>




public class MyServlet extends HttpServlet {

   public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      response.getWriter().write("hello boss...");
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      doGet(request, response);
  }
}

 

 

 

Servlet的API(生命周期):

init(ServletConfig config):servlet对象创建的时候执行

service(ServletRequest request,ServletResponse response):每次请求都会执行

destroy()servlet销毁的时候执行

 

public void init(ServletConfig arg0) throws ServletException {    
        System.out.println("Servlet创建了");
        //获取Servlet配置的初始化参数
        System.out.println("初始化参数为"+arg0.getInitParameter("name"));
        //获取servlet名字
        System.out.println(arg0.getServletName());
        //获取ServletContext
        System.out.println(arg0.getServletContext());
    }
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {    
        System.out.println("Servlet被请求了");
    }
    public void destroy() {    
        System.out.println("Servlet销毁了");
    }

 

 

Servlet基本配置:

url-pattern的配置方式:

1.完全匹配:访问的资源与配置的资源完全相同才能访问到。

2.目录匹配:格式:/虚拟的目录../*    *代表任意。

3.扩展名匹配:格式:*.扩展名

注意:目录匹配和扩展名匹配不要混用。

 

服务器启动实例化Servlet配置

缺省Servlet

欢迎页面:

 

 

 

ServletContext对象:

ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象 内部封装是该web应用的信息,ServletContext对象一个web应用只有一个

ServletContext对象的生命周期:

创建:该web应用被加载(服务器启动或发布web应用(前提,服务器启动状 态))

销毁:web应用被卸载(服务器关闭,移除该web应用)

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取ServletContext对象
        ServletContext context=getServletContext();
        //获取相对于服务器的相对路径获取绝对路径
        System.out.println(context.getRealPath("WEB-INF/classses/a.txt"));
        System.out.println(context.getRealPath("b.txt"));
        System.out.println(context.getRealPath("WEB-INF/c.txt"));
        
    }

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取ServletContext对象
        ServletContext context=getServletContext();
        //往ServletContext域中的值
        context.setAttribute("name", "zhangsan");
    }

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  //获取ServletContext对象
  ServletContext context=getServletContext();
  //往ServletContext域中的值
  String name=(String)context.getAttribute("name");
  response.getWriter().write(name);
}

 

 

posted on 2019-07-02 09:54  boss-H  阅读(181)  评论(0)    收藏  举报

导航