一、GenericServlet

1、所有的成员方法:


1、在javaWeb项目中:

2、web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="3.0"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  7. <display-name></display-name>
  8. <servlet>
  9. <servlet-name>ExtendsGenericServlet</servlet-name>
  10. <servlet-class>cn.hncu.ExtendsGenericServlet</servlet-class>
  11. /***自定义初始化参数*/
  12. <init-param>
  13. <param-name>sName</param-name>
  14. <param-value>Jack</param-value>
  15. </init-param>
  16. <init-param>
  17. <param-name>sAge</param-name>
  18. <param-value>18</param-value>
  19. </init-param>
  20. <init-param>
  21. <param-name>sAddr</param-name>
  22. <param-value>中国</param-value>
  23. </init-param>
  24. </servlet>
  25. <servlet-mapping>
  26. <servlet-name>ExtendsGenericServlet</servlet-name>
  27. <url-pattern>/servlet/ExtendsGenericServlet</url-pattern>
  28. </servlet-mapping>
  29. <welcome-file-list>
  30. <welcome-file>index.jsp</welcome-file>
  31. </welcome-file-list>
  32. </web-app>

3、ExtendsGenericServlet.java

  1. package cn.hncu;
  2. import java.io.IOException;
  3. import java.util.Enumeration;
  4. import javax.servlet.GenericServlet;
  5. import javax.servlet.ServletConfig;
  6. import javax.servlet.ServletContext;
  7. import javax.servlet.ServletException;
  8. import javax.servlet.ServletRequest;
  9. import javax.servlet.ServletResponse;
  10. /**
  11. * (1)演示Servlet的实现方式 :继承GenericServlet类
  12. * (2)演示GenericServlet类及其类成员方法的使用
  13. *
  14. * (3)类名:ExtendsGenericServlet
  15. * (4)父类:GenericServlet
  16. *
  17. * (5)类:
  18. * public abstract class GenericServlet
  19. * extends java.lang.Object
  20. * implements Servlet, ServletConfig, java.io.Serializable
  21. *
  22. * (6)抽象类实现的抽象方法:service
  23. * (7)普通类成员方法:父类已经帮我们实现了,也不用我们去覆盖,直接调用即可!
  24. * (8)所有的普通类成员方法都是有service方法去调用!
  25. *
  26. * (9)构造方法:所有servlet初始化都是由init方法完成的!
  27. *
  28. *
  29. */
  30. public class ExtendsGenericServlet extends GenericServlet {
  31. @Override
  32. public void service(ServletRequest req, ServletResponse res)
  33. throws ServletException, IOException {
  34. /**在service方法中,可以调用到GenericServlet类的所有类成员方法!*/
  35. /*接下来一一演示每个类成员方法 */
  36. /**1、
  37. * 方法:getInitParameterNames()
  38. * 返回:所有初始化参数名字
  39. */
  40. Enumeration<String> en = getInitParameterNames();
  41. /*具体操作 */
  42. System.out.println("获取初始化参数为-----");
  43. while(en.hasMoreElements()){
  44. String parameterName = en.nextElement();
  45. String parameter = getInitParameter(parameterName);
  46. System.out.println(parameterName+" = "+parameter);
  47. }
  48. /**2、
  49. * 方法:getInitParameter(String name)
  50. * 返回:初始化参数值
  51. */
  52. String sName = getInitParameter("sName");
  53. /*具体操作 */
  54. System.out.println("获取单个初始化参数为-----");
  55. System.out.println("sName = "+sName);
  56. /**3、
  57. * 方法:getServletConfig()
  58. * 返回:当前(this)的Servlet的配置信息(Object)
  59. */
  60. ServletConfig config = getServletConfig();
  61. /*具体操作 :可以获取到config对象中的方法*/
  62. System.out.println("获取config对象为-----");
  63. //3.1
  64. String sAge = config.getInitParameter("sAge");
  65. System.out.println("sAge = "+sAge);
  66. //3.2
  67. Enumeration<String> en2 = config.getInitParameterNames();
  68. while(en2.hasMoreElements()){
  69. String parameterName = en2.nextElement();
  70. String parameter = getInitParameter(parameterName);
  71. System.out.println(parameterName+" = "+parameter);
  72. }
  73. //3.3
  74. ServletContext context = config.getServletContext();
  75. System.out.println("context = "+context);
  76. //3.4
  77. String servletName = config.getServletName();
  78. System.out.println("servletName = "+servletName);
  79. /**4、
  80. * 方法:getServletContext()
  81. * 返回:当前(this)Servlet中运行的Web项目文本
  82. */
  83. ServletContext context2 = getServletContext();
  84. /*具体操作 */
  85. System.out.println("获取context2对象为-----");
  86. System.out.println("context2 = "+context2);
  87. /**5、
  88. * 方法:getServletName()
  89. * 返回:此servlet实例的名称
  90. */
  91. String servletName2 = getServletName();
  92. System.out.println("获取servletName2为-----");
  93. System.out.println("servletName2 = "+servletName2);
  94. /**6、
  95. * 方法:getServletInfo()
  96. * 返回:有关servlet的信息,如作者、版本和版权
  97. */
  98. String servletInfo = getServletInfo();
  99. System.out.println("获取servletInfo为-----");
  100. System.out.println("servletInfo = "+servletInfo);
  101. /**7、
  102. * 方法:init(ServletConfig config)
  103. * 返回:由servlet容器调用,以指示将servlet放入服务中的servlet
  104. */
  105. init(config);
  106. /**8、
  107. * 方法:service(ServletRequest req, ServletResponse res)
  108. * 返回:由servlet容器调用,以允许servlet对请求作出响应
  109. */
  110. /*service(req, res);*/
  111. }
  112. }

4、运行结果:

  1. 获取初始化参数为-----
  2. sName = Jack
  3. sAge = 18
  4. sAddr = 中国
  5. 获取单个初始化参数为-----
  6. sName = Jack
  7. 获取config对象为-----
  8. sAge = 18
  9. sName = Jack
  10. sAge = 18
  11. sAddr = 中国
  12. context = org.apache.catalina.core.ApplicationContextFacade@4fe087e7
  13. servletName = ExtendsGenericServlet
  14. 获取context2对象为-----
  15. context2 = org.apache.catalina.core.ApplicationContextFacade@4fe087e7
  16. 获取servletName2为-----
  17. servletName2 = ExtendsGenericServlet
  18. 获取servletInfo为-----
  19. servletInfo =

二、HttpServlet

1、所有成员方法:


2、UseHttpServlet.java

/** 
* (1)HttpServlet类中两个重要的方法就是:doGet、doPost 
* (2)HttpServlet中还有一些其他的请求方式,这里暂时略过,常用的就是这两中方式! 
* (3)当然了,HttpServlet可以直接获取到很多关于Servlet的方法, 这里就不用演示了! 

* (4)在doGet和doPost请求方式中,有两个参数非常重要:HttpServletRequest、HttpServletResponse 
* (5)request和response的具体使用后边演示! 

* (6)这里演示如何将两种方式请求的参数获取出来即可! 

*/

  1. package cn.hncu;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. public class UseHttpServlet extends HttpServlet {
  8. /**
  9. * (1)HttpServlet类中两个重要的方法就是:doGet、doPost
  10. * (2)HttpServlet中还有一些其他的请求方式,这里暂时略过,常用的就是这两中方式!
  11. * (3)当然了,HttpServlet可以直接获取到很多关于Servlet的方法, 这里就不用演示了!
  12. *
  13. * (4)在doGet和doPost请求方式中,有两个参数非常重要:HttpServletRequest、HttpServletResponse
  14. * (5)request和response的具体使用后边演示!
  15. *
  16. * (6)这里演示如何将两种方式请求的参数获取出来即可!
  17. *
  18. * (7)public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
  19. */
  20. @Override
  21. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  22. throws ServletException, IOException {
  23. System.out.println("doGet....");
  24. /**
  25. * 通过超链接方式来获取req请求中的参数:
  26. * http://localhost:8080/useServlet/servlet/UseHttpServlet?name=Jack&pwd=1234
  27. */
  28. String name = req.getParameter("name");
  29. String pwd = req.getParameter("pwd");
  30. resp.getWriter().println(name+" : "+ pwd);
  31. }
  32. @Override
  33. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  34. throws ServletException, IOException {
  35. System.out.println("doPost....");
  36. /**
  37. * 通过表单提交方式获取req请求中的参数:
  38. */
  39. String name = req.getParameter("name");
  40. String pwd = req.getParameter("pwd");
  41. resp.getWriter().println(name+" : "+pwd);
  42. }
  43. }

3、运行结果:

(1):doGet方式请求

(2):doPost方式请求

 

三、ServletConfig

1、所有成员方法:

2、javaWeb项目中:

3、web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="3.0"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  7. <display-name></display-name>
  8. <servlet>
  9. <servlet-name>UseServletConfig</servlet-name>
  10. <servlet-class>cn.hncu.UseServletConfig</servlet-class>
  11. <init-param>
  12. <param-name>pName</param-name>
  13. <param-value>Rose</param-value>
  14. </init-param>
  15. <init-param>
  16. <param-name>pAddr</param-name>
  17. <param-value>湖南衡阳</param-value>
  18. </init-param>
  19. </servlet>
  20. <servlet-mapping>
  21. <servlet-name>ExtendsGenericServlet</servlet-name>
  22. <url-pattern>/servlet/ExtendsGenericServlet</url-pattern>
  23. </servlet-mapping>
  24. <servlet-mapping>
  25. <servlet-name>UseServletConfig</servlet-name>
  26. <url-pattern>/servlet/UseServletConfig</url-pattern>
  27. </servlet-mapping>
  28. <welcome-file-list>
  29. <welcome-file>index.jsp</welcome-file>
  30. </welcome-file-list>
  31. </web-app>

4、UseServletConfig.java

  1. package cn.hncu;
  2. import java.io.IOException;
  3. import java.util.Enumeration;
  4. import javax.servlet.GenericServlet;
  5. import javax.servlet.ServletConfig;
  6. import javax.servlet.ServletContext;
  7. import javax.servlet.ServletException;
  8. import javax.servlet.ServletRequest;
  9. import javax.servlet.ServletResponse;
  10. public class UseServletConfig extends GenericServlet {
  11. @Override
  12. public void service(ServletRequest req, ServletResponse res)
  13. throws ServletException, IOException {
  14. /**
  15. * (1)演示ServletConfig类
  16. * (2)演示其中的4个方法
  17. *
  18. */
  19. ServletConfig config = getServletConfig();
  20. System.out.println("获取初始化参数:");
  21. /**1、
  22. * 方法:getInitParameterNames()
  23. * 返回:所有的初始化参数的名字
  24. *
  25. * 【注意】只有当前servlet在配置文件中设置了初始化参数才可以获取到
  26. */
  27. Enumeration<String> en = config.getInitParameterNames();
  28. while(en.hasMoreElements()){
  29. String parameterName = en.nextElement();
  30. /**2、
  31. * 方法:getInitParameter(String name)
  32. * 返回:当前name所对应的初始化参数值
  33. */
  34. String parameter = config.getInitParameter(parameterName);
  35. System.out.println(parameterName+" = "+parameter);
  36. }
  37. /**3、
  38. * 方法:getServletContext()
  39. * 返回:获取当前Servlet的Web项目的文本内容:ServletContext
  40. * 注意:关于ServletContext参照关于ServletContext的演示
  41. *
  42. * 接下来演示context对象中的部分方法:
  43. */
  44. System.out.println("获取文本内容:");
  45. ServletContext context = config.getServletContext();
  46. /**3.1
  47. * 方法:getContextPath()
  48. * 返回:当前Web项目名
  49. */
  50. String contextPath = context.getContextPath();
  51. System.out.println("contextPath = "+contextPath);
  52. /**3.2
  53. * 方法:setAttribute(String name,Object obj);
  54. * 返回:设置当前Web项目中的属性,及其对应值
  55. */
  56. context.setAttribute("sName", "Tom");
  57. /**3.3
  58. * 方法:getAttribute("sName")
  59. * 返回:获取当前属性所对应的值
  60. */
  61. String sName = (String) context.getAttribute("sName");
  62. System.out.println("sName = "+sName);
  63. /**4、
  64. * 方法:getServletName
  65. * 返回:当前Servlet的name
  66. *
  67. */
  68. System.out.println("获取servlet名字:");
  69. String servletName = config.getServletName();
  70. System.out.println("servletName = "+servletName);
  71. }
  72. }

5、执行结果:

  1. 获取初始化参数:
  2. pName = Rose
  3. pAddr = 湖南衡阳
  4. 获取文本内容:
  5. contextPath = /useServlet
  6. sName = Tom
  7. 获取servlet名字:
  8. servletName = UseServletConfig

四、ServletContext

1、所有成员方法:





2、UseServletContext.java

  1. package cn.hncu;
  2. import java.io.IOException;
  3. import java.util.Enumeration;
  4. import javax.servlet.ServletContext;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. /**
  10. * (1)、演示ServletContext类的相关方法
  11. *
  12. *
  13. *
  14. */
  15. public class UseServletContext extends HttpServlet {
  16. @Override
  17. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  18. throws ServletException, IOException {
  19. ServletContext context = getServletContext();
  20. /**1、
  21. * 方法:setAttribute(String name,Object obj)
  22. * 返回:在servlet上下文中绑定对象到给定属性名
  23. */
  24. context.setAttribute("sName", "Jack");
  25. /**2、
  26. * 方法:getAttribute(String name)
  27. * 返回:返回给定名称的servlet容器属性
  28. */
  29. Object sName = context.getAttribute("sName");
  30. System.out.println("sName = "+sName);
  31. /**3、
  32. * 方法:getAttributeNames()
  33. * 返回:返回包含此servlet上下文中可用的属性名称的枚举。
  34. */
  35. Enumeration<String> en = context.getAttributeNames();
  36. while(en.hasMoreElements()){
  37. String attributeName = en.nextElement();
  38. Object attribute = context.getAttribute(attributeName);
  39. System.out.println(attributeName+" = "+attribute);
  40. }
  41. /**4、
  42. * 方法:getRealPath(String name);
  43. * 返回:返回一个包含给定虚拟路径的实际路径的字符串
  44. *
  45. * 绝对路径
  46. */
  47. String realPath = context.getRealPath("index.jsp");
  48. System.out.println("realPath = "+realPath);
  49. /**结果:realPath = F:\mySoft\apache-tomcat-7.0.30\webapps\useServlet\index.jsp*/
  50. }
  51. }

Servlet】(2)有关Servlet实现的几个类:GenericServlet、HttpServlet、ServletConfig、ServletContext的更多相关文章

  1. javaweb项目jsp跳转servlet Error instantiating servlet class 问题

    问题: HTTP Status 500 - Error instantiating servlet class RecommenderServlet type Exception report mes ...

  2. Servlet过滤器,Servlet过滤器创建和配置

    第一:Servlet的过滤器的创建和配置,创建一个过滤器对象需要实现javax.servlet.Filter接口,同时实现Filter的3个方法.        第一方法是过滤器中的init()方法用 ...

  3. Servlet简介与Servlet和HttpServlet运行的流程

    1.Servlet      [1] Servlet简介         > Server + let         > 意为:运行在服务器端的小程序.         > Ser ...

  4. Java Servlet系列之Servlet生命周期

    Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Se ...

  5. javaWeb中servlet开发(3)——Servlet生命周期

    生命周期:是一个程序的存在周期,servlet由于是受容器的管理,所以容器来决定其生命周期 1.servlet生命周期 2.servlet生命周期对应的方法 3.servlet生命周期代码 publi ...

  6. Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)

    本篇将会记录,Servlet接收客户端传递来的参数信息,并返回信息使用的对象,及这些对象的函数相关用法. 还是在java ee工程中进行操作,在WebContent目录下创建一个login.jsp文件 ...

  7. 报错:严重: Servlet.service() for servlet [jsp] in context with path [/20161116-Struts2-6] threw exception [/index.jsp (line: 13, column: 20) No tag "textfiled" defined in tag library imported with prefix

    严重: Servlet.service() for servlet [jsp] in context with path [/20161116-Struts2-6] threw exception [ ...

  8. javaWeb中servlet开发(2)——servlet与表单

    1.重写doGet方法 public class InputServlet extends HttpServlet{ public void doGet(HttpServletRequest req, ...

  9. 报javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception异常 的解决方案

    后台错误信息如下: javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception org.a ...

  10. Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象

    本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...

随机推荐

  1. Spring搭建练习遇到的坑

    1.Error:(7, 23) java: cannot find symbolsymbol: class ProceedingJoinPointlocation: class com.how2jav ...

  2. 配置selenium grid

    本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chr ...

  3. MySQL:视图

    视图 一.视图的概述 1. 含义:是从数据库中一个或多个表中导出的虚拟表2. 作用:①简单化 ②安全性 ③逻辑数据独立性3. 注意:一个表可以由多个视图: 二.视图的创建 1. 总的语法形式 CREA ...

  4. 宝塔面板Windows 面板5.0 memcache安装

    a 软件管理>相应的PHP版本里(php5.6)>>配置>配置修改>编辑框拉到底 ;extension=php_memcache.dll 前的“;”号去掉>保存&g ...

  5. 剑指Offer 14. 链表中倒数第k个结点 (链表)

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 题目地址 https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?t ...

  6. 剑指Offer 13. 调整数组顺序使奇数位于偶数前面 (数组)

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 题目地址 https ...

  7. echarts环形图自动定位radius

    根据后台返回数据条数进行pie图radius定位:     var a = 100; var b = 0; var c = 0; var radius = []; for (var i in data ...

  8. 本地代码上传到githup

    1.githup网站创建new repository 2.执行下面命令,找到本地用户公钥地址 ssh -v git@github.com 输出: debug1: Offering RSA public ...

  9. JAVA高级篇(二、JVM内存模型、内存管理之第一篇)

    JVM内存结构如 Java堆(Heap),是Java虚拟机所管理的内存中最大的一块.Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例,几乎所有的对象实 ...

  10. Codeforces 1080C- Masha and two friends

    AC代码 #include <bits/stdc++.h> #define ll long long const int maxn=1e6+10; using namespace std; ...