zoukankan      html  css  js  c++  java
  • 第二章 Servlet基础

    这章我们主要的目标

    理解Servlet

    Servlet的编码和部署
    Servlet生命周期
    Servlet的配置
    Servlet与容器交互 
     
    什么是Servlet
    -是运行在Web服务器或应用服务器上的Java程序
    -在Web上创建动态内容的有效而强大的解决方案
    -由容器来管理生命周期与Web服务器交互
    -由Sun规范了其功能 
     
    Servlet的规范组成  
    Web应用程序  Servlet和HTTPServlet   过滤器  安全  国际化  
     
     
    Servlet生命周期
    Servlet遵循三阶段的生命周期:初始化  服务  销毁
    初始化 销毁通常执行一次,服务可以执行多次。
    所有的Servlet必须实现javax.servlet.Servlet接口。这个接口定义了 init();service(ServletRequest req, ServletResponse resp);destory();
     
     
    Servlet的编码和部署
    创建部署文件 (web.xml):
       一般在创建工程的时候,又有默认的web.xml;这时就不需要创建了
     
    在容器中注册servlet

    <servlet>
          <servlet-name>OutputStream</servlet-name>
          <servlet-class>com.cy.OutputStream</servlet-class>
    </servlet>

    映射servlet:

    <servlet-mapping>
           <servlet-name>OutputStream</servlet-name>
           <url-pattern>/OutputStream</url-pattern>
    </servlet-mapping>

    servlet配置:

    为Servlet提供初始化配置信息
    配置信息由web.xml声明中的字符串组成
     
    eg:

    <servlet>
        ....
      <init-param>
         <param-name>name</param-name>
         <param-value>Kitty</param-value>
      </init-param>

    <init-param>
         <param-name>name1</param-name>
         <param-value>Kitty1</param-value>
      </init-param>


    </servlet>

    Servlet在编译的代码之外有初始化参数,当参数改变时,不需要重新编译Servlet  ,每个servlet都有一个与之相联的对象ServletConfig; (在servletConfig对象中包含了servlet的初始化参数信息。)

    得到指定的参数value:String value= getServletConfig().getInitParameter(“name"); 

    得到所有的所有的参数value:需要应用一个ServletConfig中的一个方法:getInitParameterNmes():返回一个Enumeration(枚举)对象,里面包含了所有的初始化参数。

    1. Enumeration e = this.getServletConfig().getInitParameterNames();  
    2.         while(e.hasMoreElements()){  
    3.             String name = (String)e.nextElement();  
    4.             String value = this.getServletConfig().getInitParameter(name);  
    5.             System.out.println(name+"="+value);  
    6.         }  
    7.     }  
     
    ServletContext 应用上下文:
     
    属于整个Web应用程序
    可以访问到Web应用程序资源的本地输入流
    把资源的虚拟路径转换为物理路径
    记录事件日志
    绑定一个对象在整个Web应用程序中共享
     
    初始化web应用程序参数:

     <web-app>

     …

     <context-param>

         <param-name>admin email</param-name>

         <param-value>admin@cy.com</param-value>

      </context-param>

         …

    </web-app>

    在Servlet中共享信息

    为所有的Servlet设置一个实时变化的参数值
    在Web应用程序中共享一个对象
    eg:

    servletContext.setAttribute("password", "tiger");

    String password = (String) servletContext.getAttribute("password");

    虚拟路径转换为物理路径:

    getResourcePaths(java.lang.String path):返回一个集合,路径必须从Web应用程序的根“/”开始;

    getResourceAsStream(java.lang.String path):返回一个InputStream对象。当一个资源需要逐字节读取的时候该方法比较适用。

    getResource(java.lang.String path):返回一个Web资源列表。

     
     
     
  • 相关阅读:
    为ccflow增加禁用用户立刻生效功能
    关于工作流引擎授权问题的需求变更
    sql server 2005 安装过程中出现错误Insatalling performance countter: Cannot create a file when that file already exists.
    web.config中错误
    三个SQL视图查出所有SQL Server数据库字典
    恢复备份的数据库
    sql语句读取excel数据
    It is an error to use a section registered allowDefinition='MachineToApplication' beyond application level. 错误
    DOS命令实现创建文件夹
    如何查看sql server 的版本(网摘)
  • 原文地址:https://www.cnblogs.com/hellokitty1/p/4861349.html
Copyright © 2011-2022 走看看