servlet 学习二

来源:互联网 发布:mac运行32位软件 编辑:程序博客网 时间:2024/06/03 18:35

       servlet表单的使用

       就像JSP能够处理表单一样,servlet也能够完成这些工作。虽然要麻烦一些,但是掌握之后,在框架中会得到广泛的应用。

       首先是表单提交的html页面,这个页面就是最普通的使用方式即可。唯一要注意的就是action的指向,可以填写servlet的映射路径。

       而servlet类的编写则要按照之前所学的方式,一步一步来。首先写一个类继承servlethttp类,然后复写doGet方法。在doGet方法中,我们用request对象中存在的getWriter返回数字流对象作为输出,用response对象中的       getParameter方法获取表单参数。

       然后用servlet令人诟病的方式进行输出即可。

       有一点需要注意的是,我们是复写了doGet方法。所以表单提交的方式只能是get方式。如果想支持post方式,那就要复写一下doPost,因为doPost和doGet其实是非常类似的方法,所以只需要doPost方法的代码块中写入:

       this.doGet(req,resp);

       这样,就可以解决此问题了。

       servlet的生命周期

       servelt的生命周期分成五个部分 :加载、初始化、服务、销毁和卸载。

       在web容器启动时,存在于web.xml中的servlet等于就已经被加载了。而当第一次使用这个servlet的时候,就开始了初始化。

       加入初始化失败,直接就进入卸载。如果加入初始化成功。则开始服务。等到服务不可用的时候,就进行销毁,然后卸载。

       关于加载和卸载,这个是在web.xml中操作的,换言之,是我们程序员自己通过敲代码改变的。而其他的几个阶段,则是由实际运行的时候产生的。

       初始化,会在程序第一次进行的时候调用init函数。之后无论如何刷新,都只会调用服务的函数(一般就是doGet和doPost)。

       而卸载的话,有三种情况:

       1 容器关闭

       2 服务长时间不用

       3 调用了reload函数

       servlet初始化

       servlet的初始化操作就是在web.xml的servlet标签中加入参数和参数对应的值。然后在servlet类中使用init方法,通过参数名获得值即可。

       当一个servlet中有多个init方法时,只有获得了初始化参数的那一个方法才起作用。而且所有初始化参数都必须要通过映射路径才有效。

       下面是在web.xml中的配置:

<servlet>      <servlet-name>servlet名</servlet-name>      <servlet-class>路径</servlet-class>            <init-param>                  <param-name>ref</param-name>                  <param-value>初始化参数值</param-value>            </init-param>      </servlet>


       下面是servlet类:

public class InitParamServlet extendsHttpServlet {      privateString initParam = null ;   // 用于保存初始化参数      publicvoid init(ServletConfig config) throws ServletException{            this.initParam= config.getInitParameter("ref") ;  //接收的初始化参数名称暂时为ref      }      publicvoid doGet(HttpServletRequest req,                     HttpServletResponse resp)              throws ServletException,                     IOException{            System.out.println("**初始化参数:"+ this.initParam) ;      }}


0 0