• servlet


     

      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上

      

      

      

    这个只不过是自己的流水账,偶尔有一些心得,错误的地方概不负责
  • 相关阅读:
    201521123115《Java程序设计》第7周学习总结
    201521123115《Java程序设计》第6周学习总结
    201521123115 《Java程序设计》第5周学习总结
    201521123115 《Java程序设计》第4周学习总结
    201521123115 《Java程序设计》第3周学习总结
    201521123115《Java程序设计》第2周学习总结
    201521123114 《Java程序设计》第13周学习总结
    201521123114 《Java程序设计》第12周学习总结
    201521123114 《Java程序设计》第11周学习总结
    201521123114 《Java程序设计》第10周学习总结
  • 原文地址:https://www.cnblogs.com/ashitaka/p/5731248.html
Copyright © 2020-2023  润新知