数据加载中……
个人学习
J2EE上API上有两个init方法  一个是带参数的 init(ServletConfig config)
方法还有一个是不带参数的 init()方法
通常情况下,比如用tomcat,tomcat会把web.xml的配置信息封装成对象 (也就是config ),通过调用init(ServletConfig config)给正常初始化.tomcat调用init(ServletConfig config)方法的类中有个成员变量叫config,
tomcat的具体实现是{this.config = config; init();}这样config成员变量就被正常初始化了.
如果我们程序员要自己手动的方式调用init方法,最好用不带参数的init(),如果非要用带参数的init(ServletConfig config)方法.就一定不能忘记调用父类的super.init(config);
因为重写方法,就把以前的语句给覆盖了.不能正常的赋值了.
不然用到servletContext的时候很容易出空指针异常(config成员变量没有正常初始化);
2。创建Servlet时,必须要继承自HttpServlet,也就是Servlet的父类(super)。
HttpServlet作为一个抽象类用来创建用户自己的Servlet,HttpServlet的子类至少重写一下方法中的一个:doGet()和doPost().
HttpServlet类提供doGet()方法处理form表单的GET请求,并提供doPost()方法来处理POST请求。
你必须了解Servlet 的生命周期:
实例化——>Servlet容器创建Sevlet实例
初始化——>该容器调用init()方法
服  务——>如果请求Servlet,则容器调用Service()方法
销  毁——>销毁实例之前调用destroy()方法
那就得给你解释下初始化了:
Servlet容器加载好Servlet后,必须进行初始化,初始化Servlet时,可以设置数据库连接参数,建立JDBC连接,或者建立对其他资源的引用。在初始化阶段init()方法被掉用。这个方法在javax.servlet.Servlet接口中定义。
你可以把Servlet容器 就当作和Tomcate一样的东西!所以Servlet也叫Servlet引擎。 
  ServletConfig说明和用法

因为本人虽然做过开发,却一些基本知识不扎实,今天用到了,所以恶补了一下,特整理成了文档,希望能巩固知识,也希望能帮助一些朋友。

        Servlet容器初始化一个servlet对象时,会为这个servlet对象创建一个servletConfig对象。servletConfig对象中包含了servlet的初始化参数信息。此外,servletConfig对象还与servletContext对象关联。Servlet容器在调用servlet对象的init(ServletConfig  config)方法时,会把servletConfig对象当做参数传递给servlet对象。Init(ServletConfig  config)方法会使得当前servlet对象与servletConfig对象建立关联关系。

servletConfig接口中定义了一下方法:
Ø       getInitParameter(String   name)根据给定的初始化参数,返回匹配的初始化参数值。

Ø       getInitParameterNmes():返回一个Enumeration对象,里面包含了所有的初始化参数。

Ø       getServletContext()返回一个servletContext()对象,

Ø       getServltName():返回servlet的名字,即web.xml中的<servlet-name>的子元素的值。如果没有配置这个子元素,则返回servlet类的名字。

例子:

<servlet>

    <servlet-name>actionServlet</servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

    <load-on-startup>0</load-on-startup>

 <init-param>

       <param-name>color</param-name>

       <param-value>red</param-value>

    </init-param>

    <init-param>

       <param-name>size</param-name>

       <param-value>16</param-value>

    </init-param>

   

  </servlet>

  <servlet-mapping>

    <servlet-name>actionServlet</servlet-name>

    <url-pattern>*.do</url-pattern>

  </servlet-mapping>

如上,红色标记处为初始化参数,相当于公有参数。

servlet中:

public class UserDateBaseServlet  extends HttpServlet{

      String color = this.getInitParameter("color");

      String size = this.getInitParameter("size");

      System.out.println("颜色是:"+color+"字号是:"+size);

}

注:HttpServlt类继承了GenericServlet类,而GenericServlet类实现了ServletConfig接口,因此在HttpServlet类和GenericServlet类及子类中都可以直接调用ServletConfig接口中的方法。

 servletconfig和servletcontext的区别
ServletConfig就是获取一个<Servlet></Servlet>的信息
而ServletContext则包含Web.xml里面所有的信息
ServletConfig是获取该servlet的配置信息
每一个servletconfig对应一个servletservlet之间不共享数据的
request是浏览器发给服务器的
http://localhost:8080/Userinfo/servlet/str=''-----------------------------这个事干吗的啊

posted on 2010-09-15 22:08 晓玲 阅读(110) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: