码迷,mamicode.com
首页 > 其他好文 > 详细

servlet

时间:2016-08-03 01:19:52      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

 

 

  java servlet是与平台无关的服务器组件,他运行于servlet容器中,servlet容器负责servlet和客户的通信以及调用servlet的方法,servlet和客户的通信采用"请求/响应"的模式。

servlet可以完成如下功能:

  1创建并返回基于客户请求的动态html页面。

  2创建可嵌入到现有html页面部分的html页面。

  3与其他服务器资源进行通信例如数据库或者基于java的应用程序。

servlet API:

  1、接口:javax.servlet.Servlet。 

    javax.servlet.Servlet接口定义了在Servlet的生命周期中特定时间以及特定顺序被调用的方法。

    一个Java servlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。 Servlet的生命周期被javax.servlet.Servlet这个接口所定义。
       所有的Java Servlet都会直接地或间接地执行javax.servlet.Servlet接口,这样它才能在一个Servlet引擎中运行。 Servlet引擎是Web 服务器按照Java Servlet API定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供一个运行Servlet的容器。

  2、接口:  javax.servlet.ServletConfig

实现这些接口的类:javax.servlet.GenericServlet和它的子类javax.servlet.http.HttpServlet

 

 

  1、建立一个servlet必须实现Servlet接口。

public class Serlet implements Servlet

   2、需要在web.xml文件配置servlet

   

  <!-- 配置servlet -->
      <servlet >
          <servlet-name>HelloServlet</servlet-name>
          //这个参数是servlet的名字
          <servlet-class>com.hs.Serlet</servlet-class>
          //这个参数是这个servlet调用的类的完整路径
          <init-param>
               //init-para 参数 ServletConfig 可以获取此参数
                <param-name>name</param-name>
              <param-value>hs</param-value>
          </init-param>    
      </servlet>
    //--------------------------------------
    public void init(ServletConfig config) throws ServletException {
      ServletContext context = config.getServletContext();
      System.out.println(config.getInitParameter("name"));
      System.out.println(context.getContextPath());
      System.out.println(context.getInitParameter("name"));
    }
    //----------------------------------------
    <context-param>
     // context_param ServletContext 可以获取次参数 
        <param-name>name</param-name>
        <param-value>hs</param-value>
    </context-param>
      <!-- 配置servlet映射 -->
      //servlet容器会根据映射来调用servlset
      <servlet-mapping>
          //servlet-name 参数必须与要调用的servlet的<servlet-name>一致
          <servlet-name>HelloServlet</servlet-name>
          <url-pattern>/hello</url-pattern>
                //这个参数中 ‘/‘代表当前web应用的根目录 http://localhost:8080/weblesson1/
          //所以这个servlet访问的路径是http://localhost:8080/weblesson1/hello
      </servlet-mapping>

 

 servlet的生命周期:

  1、构造器 :第一次访问servlet会调用构造器且只有一次,说明servlet是单例的会涉及线程安全的问题

  2、init方法:servlet初始化程序,只调用一次。可以传入参数 public void init(ServletConfig config) throws ServletException {

  3、service:是对“请求/响应"的相关处理,没请求一次会调用一次。

  4、destroy:当servlet销毁之前会调用。

<load-on-startup>1</load-on-startup>节点:

  配置servlet创建的顺序,值越小越先创建,如果为负数,只有在访问的时候才创建。servlet 与映射一般是成对出现但是没有映射也是可以创建的。同一个servlet可以映射到多个url上

  

  

  

servlet

标签:

原文地址:http://www.cnblogs.com/ashitaka/p/5731248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!