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) ; }}
- 【servlet学习二】:实现servlet
- servlet学习笔记(二)
- Servlet学习二
- Servlet学习笔记(二)
- Java Servlet学习二
- servlet学习笔记(二)
- servlet 学习二
- servlet学习笔记二
- Servlet学习(二)
- servlet 学习(二)
- servlet学习(二)
- servlet学习总结二
- Servlet学习二
- Servlet学习笔记《二》
- Servlet学习笔记二
- Servlet学习(二)servlet生命周期
- JSP/Servlet 学习笔记(二)
- Java Servlet原理学习(二)
- Android中判断输入的字符串是否为数字,可以解决如输入为点出现的问题
- Android最新组件RecyclerView,替代ListView
- VS2010与mysql
- STL源码之实现一个简易的Vector容器
- Dongle烧写模块重构(四)--用工厂模式将方案商从功能代码中抽离
- servlet 学习二
- OllyDbg破解系列学习笔记(四)
- UVA 10201 Adventures in Moving - Part IV(动态规划)
- 检测TCP端口占用状态的函数
- ASP.NET MVC3开发 - CodeFisrt数据库篇之M层验证之调用远程方法(Remote)验证
- 用fork函数,由一个父进程生成两个子进程
- 1279 验证角谷猜想
- Servlet杂记
- ASP.NET MVC3开发-数据库篇之CodeFisrt开发(一)