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) ;
}
}