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的“生命”是掌握在系统手上的, ...
随机推荐
- 2013:Audio Tag Classification - MIREX Wiki
Contents [hide] 1 Description 1.1 Task specific mailing list 2 Data 2.1 MajorMiner Tag Dataset 2.2 M ...
- SGU 261. Discrete Roots (N次剩余)
N次剩余 题目:http://acm.sgu.ru/problem.php? contest=0&problem=261 题意:给定n,a,p 求出x^n ≡ a(mod p)在模p意义下的全 ...
- 2016/1/14 java生成指定范围的随机数
java生成指定范围的随机数 package edu.sjtu.erplab.io; import java.util.Random; public class RandomTest { public ...
- 【OI】关于快速幂的简单理解
都知道算某个数的幂需要线性的复杂度,为了优化复杂度,就出现了所谓的快速幂. 快速幂的代码很短,但是要原理需要一点心思. 首先,我们知道, a^b = a^c * a^d (c+d=b) 那么,不就可以 ...
- Delphi异常处理的基本原则和方法
Delphi异常处理的基本原则和方法 一.异常的来源. 在Delphi的应用程序中,下列的情况都比较有可能产生异常.(1)文件处理(2)内存分配(3)Windows资源(4)运行时创建对象和窗体(5) ...
- 网络流之最大流算法(EK算法和Dinc算法)
最大流 网络流的定义: 在一个网络(有流量)中有两个特殊的点,一个是网络的源点(s),流量只出不进,一个是网络的汇点(t),流量只进不出. 最大流:就是求s-->t的最大流量 假设 u,v 两个 ...
- 洛谷 P2296 寻找道路 —— bfs
题目:https://www.luogu.org/problemnew/show/P2296 第一次用 Emacs 对拍,写了半天: 注意那个 is 赋值的地方很容易错,千万别反复赋值: 一道水题写了 ...
- openStack集群封装记录
- Spark SVM分类器
package Spark_MLlib import java.util.Properties import org.apache.spark.mllib.regression.LabeledPoin ...
- 记录利用CSS完美解决前端图片变形问题
在头条IT学堂看到CSS完美解决前端图片变形问题的文章,就记录分享下: 一.让图片的宽度或者高度等于容器的宽度或高度,多余的裁掉,然后让图片居中: <style type="text/ ...