zoukankan      html  css  js  c++  java
  • servlets

    今天根据我到网上查找资料,学习servlet加载。参考来自http://www.bitscn.com/pdb/java/200807/145683.html

    servlet 加载:容器的Context对象对请求路径(URL)作出处理, 去掉请求URL的上下文路径后,按路径映射规则(web.xml文件)和Servlet映射路径(<url-pattern>)做匹配,如果匹配成功,则调用这个Servlet处理请求。

     匹配规则:

    请求URL精确匹配,如果成功则调用该Servlet。  匹配最长的路径前缀,以/为路径分隔符,按路径树逐级匹配,选择最长匹配的Servlet来处理。  如果前面都没有匹配成功,则容器调用WEB应用程序的默认Servlet来对请求进行处理。如果没有定义默认Servlet,容器将向客户端发送404(请求资源不存在)错误信息。

    <servlet>元素标签有以下几种:

     <description>*:为Servlet指定一个文本描述。

     <display-name>*:为Servlet提供一个简短的名字被某些工具显示。

     <icon>*:为Servlet指定一个图标,在图形管理工具中表示该Servlet。

     <servlet-name>:Servlet的名字,唯一性。

     <servlet-class> or <jsp-file>:<servlet-class>为Servlet的完整路径。     <jsp-file>指定web应用程序中 的jsp文件完整路径 以/开始对一个jsp文件做URL映射。

     <init-param>*:定义Servlet初始化参数。

     <description>*:初始化参数文本描述。

     <pararm-name>:初始化参数的名字。

     <param-value>:初始化参数的值。

     <load-on-startup>?:WEB应用程序被启动时,Servlet被加载的顺序。内容为一个整型值。

     负数或没有设定这个元素表示Servlet容器将在客户端请求这个Servlet的时候加载它

     正数或o表示WEB应用程序被启动时按数值大小由小到大初始化Servlet。

     如果同时包含<jsp-file>元素和<load-on-startup>,则jsp文件也被预编译并加载。

     <run-as>?:执行组件的角色

     <descripttion>:文本描述。

     <role-name>:指定执行组件的角色名字。

     <security-role-ref>*:声明在组件或部署的组件的代码中的安全角色引用。

     <description>*:安全角色文本描述。

     <role-name>:使用的安全角色的名字。

     <role-line>?:指定到一个安全角色的引用。

     <servlet-mapping>元素及其子元素,在servlet和url之间定义一个映射。

     <servlet-name>:Servlet的名字,唯一性和一致性。与<servlet>元素中声明的名字一致。

     <url-pattern>:指定相对于Servlet的URL的路径。该路径相对于web应用程序上下文的根路径。

    例如如下程序段的使用:

    <servlet>
    <servlet-name> Chapter1 Servlet</servlet-name>
    <servlet-class>Ch1Servlet</servlet-class>

    <init-param>
    <param-name>adminEmail</param-name>
    <param-value>ruihong04172qq.com</param-value>
    </init-param>
    </servlet>

    <servlet-mapping>
    <servlet-name> Chapter1 Servlet</servlet-name>
    <url-pattern>/Serv1</url-pattern>
    </servlet-mapping>


    在相对应的servlet类中可以如下得到相应的值:

    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;

    public class Ch1Servlet extends HttpServlet {
    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws IOException {

    PrintWriter out = response.getWriter();
    out.println(getServletConfig().getInitParameter("adminEmail"));
    }
    }


    其中:getServletConfig()方法前面省略了 this,也就是完整的应该是:this.getServletconfig();写到如此我们可以知道这是servlet中提供的一个方法。

  • 相关阅读:
    LINUX VNC配置[转]
    win7下,两台笔记本内置的无线局域网卡共享上网
    修改Linux和aix系统为北京时区
    ubuntu 9.10 下安装ORACLE 出错SP20750: You may need to set ORACLE_HOME to your Oracle software directory
    安装vim7.1
    select 语句的处理顺序
    批量从数据库是提取数据,并显示出来。
    输入四个字符串然后按大到后输出。
    shell 批量修改指定的文件。
    unix自动登录Telnet,实现查看多台服务器硬盘及数据表空间使用情况
  • 原文地址:https://www.cnblogs.com/wrh526/p/2194771.html
Copyright © 2011-2022 走看看