• 学习笔记


    1.启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param>
    2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.
    3.容器将<context-param></context-param>转化为键值对,并交给ServletContext.
    4.容器创建<listener></listener>中的类实例,即创建监听.
    5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得
    ServletContext = ServletContextEvent.getServletContext();
    context-param的值 = ServletContext.getInitParameter("context-param的键");
    6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早.
    换句话说,这个时候,你对<context-param>中的键值做的操作,将在你的WEB项目完全启动之前被执行.
    7.举例.你可能想在项目启动之前就打开数据库.
    那么这里就可以在<context-param>中设置数据库的连接方式,在监听类中初始化数据库的连接.
    8.这个监听是自己写的一个类,除了初始化方法,它还有销毁方法.用于关闭应用前释放资源.比如说数据库连接的关闭.
    9.... 以上资料来自<<Head First Servlet&JSP>>





    web.xml中servlet的配置

       

    <servlet>元素是配置Servlet所用的元素。

    <servlet-mapping>元素在Servlet和URL样式之间定义一个映射,即servlet类提供一个url,在地址栏输入对应的映射路径就可以访问你的servlet。

    下面给出一段配置代码: 

    <servlet>
      <servlet-name>ServletName</servlet-name>   
      <servlet-class>xxxpackage.xxxServlet</servlet-class>   <!--Servlet的类-->
      <init-param>                                     <!--初始化一个变量,可看成全局变量,可省略-->
        <param-name>参数名称</param-name>              <!--变量名称-->

        <param-value>参数值</param-value>              <!--变量值-->
      </init-param>

    </servlet>
    <servlet-mapping>
      <servlet-name>ServletName</servlet-name>               
      <url-pattern>/aaa/xxx</url-pattern>                   <!--映射的url路径 -->

    </servlet-mapping>

    在地址栏中输入http://localhost:8080/web-App/aaa/xxx就可以访问了。

    缺省Servlet

    1.如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。

    2.凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。

    3.在<tomcat的安装目录>confweb.xml文件中,注册了一个名称为org.apache.catalina.servlets.DefaultServlet的Servlet,并将这个Servlet设置为了缺省Servlet。

    当访问Tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省Servlet。

        今天调试的时候开始映射路径写错了,后来改过来后重新访问还是不行。最后发现是IE缓存的问题,清楚缓存之后就OK了~~这个问题以后要注意。

  • 相关阅读:
    模拟行工程部署记录
    (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库
    (转)Linux下安装firefox最新版
    spring4.x源码下载网盘
    手工下发支付业务以及日志查看过程
    在java web中获取该项目的根路径
    在js代码中调用jsp的变量
    ibtais中把clob数据类型转换成string并展示到前台
    ibtais中把clob数据类型转换成string并插入到数据库中
    spring报错:Caused by: java.lang.IllegalStateException: Cannot convert value of type for property : no matching editors or conversion strategy found
  • 原文地址:https://www.cnblogs.com/janeaiai/p/5643169.html
Copyright © 2020-2023  润新知