04Servlet的生命周期
Servlet的生命周期
Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示。
<html> <head> <meta content="text/html; charset=UTF-8"> <title>Servlet声明周期</title> </head> <body> <h2>通过POST方式传递参数</h2> <form action="ServletLife" method="POST"> <!-- 通过POST方式传递参数 --> 输入姓名: <input type="text" name="namepost" /> <br> <input type="submit" value="提交"/> </form> <h2>通过GET方式传递参数</h2> <form action="ServletLife" method="GET"> <!-- 通过GET方式传递参数 --> 输入姓名: <input type="text" name="nameget" /> <br> <input type="submit" value="提交"/> </form> </body> </html>
package com.ahabest.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletLife extends HttpServlet { private static final long serialVersionUID = 6694980741533555810L; /** 初始化参数. */ private String initParam; /** * 初始化. * @param config 初始化参数 * @throws Servlet异常 */ @Override public void init(ServletConfig config) throws ServletException { super.init(config); System.out.println("===初始化Servlet==="); // 获得初始化参数并打印出来 initParam = config.getInitParameter("sayhello"); System.out.println("我们获得的初始化参数是:" + initParam); } /** * service方法使用. * @param req Request * @param resp Response * @throws ServletException Servlet异常 * @throws IOException IO异常 */ @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println( "正在执行service方法,调用父类对应的方法,当前提交方式:" + req.getMethod()); super.service(req, resp); } /** * doGet方法使用. * @param req Request * @param resp Response * @throws ServletException Servlet异常 * @throws IOException IO异常 */ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 设置Request参数编码 req.setCharacterEncoding("UTF-8"); // 获得页面传递过来的参数 String nm = req.getParameter("nameget"); // 获得初始化参数字符串 nm = "通过GET方法获得的:" + nm + " , " + initParam; // 设定内容类型为HTML网页UTF-8编码 resp.setContentType("text/html;charset=UTF-8"); // 输出页面 PrintWriter out = resp.getWriter(); out.println("<html><head>"); out.println("<title>Servlet Life</title>"); out.println("</head><body>"); out.println(nm); out.println("</body></html>"); out.close(); System.out.println("正在执行doGet方法,页面会显示文字:" + nm); } /** * doPost方法使用. * @param req Request * @param resp Response * @throws ServletException Servlet异常 * @throws IOException IO异常 */ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 设置Request参数编码 req.setCharacterEncoding("UTF-8"); // 获得页面传递过来的参数 String nm = req.getParameter("namepost"); // 获得初始化参数字符串 nm = "通过POST方法获得的:" + nm + " , " + initParam; // 设定内容类型为HTML网页UTF-8编码 resp.setContentType("text/html;charset=UTF-8"); // 输出页面 PrintWriter out = resp.getWriter(); out.println("<html><head>"); out.println("<title>Servlet Life</title>"); out.println("</head><body>"); out.println(nm); out.println("</body></html>"); out.close(); System.out.println("正在执行doPost方法,页面会显示文字:" + nm); } /** * 销毁Servlet实例. */ @Override public void destroy() { System.out.println("===销毁Servlet实例==="); super.destroy(); } }
<?xml version="1.0" encoding="gb2312"?> <web-app> <welcome-file-list> <welcome-file>ServletLife.html</welcome-file> </welcome-file-list> <servlet> <servlet-name>ServletLife</servlet-name> <servlet-class>com.ahabest.servlet.ServletLife</servlet-class> <init-param> <param-name>sayhello</param-name> <param-value>你好啊!</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>ServletLife</servlet-name> <url-pattern>/ServletLife</url-pattern> </servlet-mapping> </web-app>
04Servlet的生命周期的更多相关文章
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)
本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...
- UIViewController生命周期-完整版
一.UIViewController 的生命周期 下面带 (NSObject)的方法是NSObject提供的方法.其他的都是UIViewController 提供的方法. load (NSObje ...
- angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation
今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:
- Spring中Bean的作用域、生命周期
Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...
- Autofac - 生命周期
实例生命周期决定在同一个服务的每个请求的实例是如何共享的. 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), 一个新的对象 (per lifetime作用 ...
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- Xamarin.Android活动的生命周期
一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...
随机推荐
- 公钥加密,摘要算法MD5,SSH相关概念
1.公钥加密,又叫非对称加密,一般指的是用一组密钥来保证通信的安全.(公钥,私钥)成对存在且惟一,典型的公钥算法有 RSA(计算出的是1024位,128字节),顺便提一下与公钥加密算法相对应的就是传统 ...
- POJ1808 平方(二次)同余方程
POJ1808 给定一个方程 x*x==a(mod p) 其中p为质数 判断是否有解 程序中 MOD_sqr()返回整数解 无解返回-1 数学证明略 #include<iostream> ...
- sqlserver新加一自增长的列,并且更新为行号
--查询行号 select row_number()over(order by CHECKTIME )as RowNum,*from CHECKINOUT --更新id列为行号 update CHEC ...
- MySQL 目录结构信息
bin 目录,存储可执行文件. data 目录,存储数据文件. docs 目录,文档. include 目录,存储包含的头文件. lib 目录,存储库文件. share 目录,错误信息和字符集文件.
- bzoj 1626: [Usaco2007 Dec]Building Roads 修建道路【最小生成树】
先把已有的边并查集了,然后MST即可 记得开double #include<iostream> #include<cstdio> #include<algorithm&g ...
- bzoj 1770: [Usaco2009 Nov]lights 燈【高斯消元+dfs】
参考:https://blog.csdn.net/qq_34564984/article/details/53843777 可能背了假的板子-- 对于每个灯建立方程:与它相邻的灯的开关次数的异或和为1 ...
- bzoj1052覆盖问题(二分+贪心)
1052: [HAOI2007]覆盖问题 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2446 Solved: 1131[Submit][Stat ...
- C++面向对象程序设计_Part2
目录 Composition(复合) 内存视角下的composition(复合) composition(复合)关系下的构造与析构 Delegation (委託) -- Composition by ...
- 对路径 obj 文件夹访问被拒绝
TFS 刚下载的项目,出现该问题. 解决方案: 将文件夹属性“只读”,取消
- BFS(倒水问题) HDU 1495 非常可乐
题目传送门 /* BFS:倒水问题,当C是奇数时无解.一共有六种情况,只要条件符合就入队,我在当该状态vised时写了continue 结果找了半天才发现bug,泪流满面....(网上找份好看的题解都 ...