Servlet-----GenericServlet
Servlet接口实现之 GenericServlet抽象类
一、该类的描述
1、GenericServlet是一个抽象类,并且是HttpServlet类的父类。
2、GennericServlet实现了Servlet接口并覆写了该接口的方法,只有service方法只实现但是没有覆写,当继承GennericServlet抽象类的时候只需要覆写service方法。
二、该类提供的方法
destory()方法作用与Servlet.destory()方法相同,略。
getInitParameter()方法概述:public java.lang.String getInitParameter(java.lang.String name)
返回一个包含初始化变量的值的字符串,如果变量不存在则返回null,该方法从servlet的ServletConfig变量获得命名变量的值。
getInitParameterNames()方法概述:public java.util.Enumeration getInitParameterNames()
该方法返回一个包含所有初始化变量的枚举函数。如果没有初始化变量,则返回一个空枚举函数。
getServletConfig()方法概述:public ServletConfig getServletConfig()
返回一个servlet的ServletConfig对象getServletContext()方法与ServletConfig.getServletContext()相同,略。
getServletInfo()方法概述:public java.lang.String getServletInfo()
该方法来源于Servlet接口,覆写该方法以产生有意义的信息。(如:版本号、版权、作者等)
init(ServletConfig config)方法概述:public void init(ServletConfig config) throws ServletException
该方法来源于Servlet接口,覆写该方法,必须调用super.init(config)
init()方法概述:public void init() throws ServletException
该方法重载Servlet.init(ServletConfig config)方法而无需调用super.init(config)。而ServletConfig对象依然可以通过调用getServletConfig()方法获得。
log(java.lang.String msg)方法概述:public void log(java.lang.String msg)
该方法把指定的信息写入一个日志文件,见ServletContext.log(String)。
log(java.lang.String message,java.lang.Throwable t)方法概述:public void log(java.lang.String message,java.lang.Throwable t)
该方法把解释性的内容和抛出的例外信息写入一个日志文件。
service()方法概述:public abstract void service(ServletRequest req,ServletResponse res)
throws ServletException,java.io.IOException
该方法必须由servlet容器调用以允许servlet 对请求作出响应。
见Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)。
getServletName(),见ServletConfig.getServletName()。
三、init()获取初始化参数
1、GennericServlet类提供了无参的init初始化方法,这个方法获取参数的原理参照下面的源代码。
2、init()无参初始化方法代码。
-
package test05;
-
-
import java.io.IOException;
-
import java.io.PrintWriter;
-
-
import javax.servlet.GenericServlet;
-
import javax.servlet.ServletConfig;
-
import javax.servlet.ServletException;
-
import javax.servlet.ServletRequest;
-
import javax.servlet.ServletResponse;
-
import javax.servlet.http.HttpServlet;
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
-
public class GenricServ extends GenericServlet {
-
-
/*
-
* 这个是servlet接口原生的初始化方法,这个方法和Genneric的init()无参方法同时存在
-
* 的时候,无参的init方法是不会执行的。因为有参的init方法是父类中的方法,调用了
-
* 父类的方法,被子类覆盖的方法就不会执行。
-
*/
-
public void init(ServletConfig config){
-
System.out.println("这个是Serlvet接口提供的初始化方法");
-
}
-
-
/*
-
* 1、genericservlet覆盖了Servlet接口的init(serviletConfig)方法,覆盖源码如下:
-
* @Override
-
public void init(ServletConfig config) throws ServletException {
-
this.config = config;
-
this.init();
-
}
-
2、只需要覆盖init()没有参数的方法就可以实现自定义的内容。
-
-
*/
-
public void init(){
-
-
/*
-
* 获取参数有两个方法,第一个方法如下:
-
*/
-
System.out.println("初始化。。。。");
-
String name = getServletConfig().getInitParameter("who");
-
System.out.println("获取初始化参数who的值"+name);
-
-
/*
-
* 使用GennericServlet提供的方法,实现原理和上面方法是一样的。
-
* @Override
-
public String getInitParameter(String name) {
-
return getServletConfig().getInitParameter(name);
-
}
-
*/
-
String name2 = getInitParameter("who");
-
System.out.println("使用GennericServlet提供的方法"+name2);
-
}
-
@Override
-
public void service(ServletRequest req, ServletResponse res)
-
throws ServletException, IOException {
-
// TODO Auto-generated method stub
-
-
}
-
-
}
3、web.xml配置方法
-
<?xml version="1.0" encoding="UTF-8"?>
-
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
-
-
<servlet>
-
<description>This is the description of my J2EE component</description>
-
<display-name>This is the display name of my J2EE component</display-name>
-
<servlet-name>GenricServ</servlet-name>
-
<servlet-class>test05.GenricServ</servlet-class>
-
<init-param>
-
<param-name>who</param-name>
-
<param-value>我是初始化参数</param-value>
-
</init-param>
-
<load-on-startup>1</load-on-startup>
-
</servlet>
-
-
<servlet-mapping>
-
<servlet-name>GenricServ</servlet-name>
-
<url-pattern>/genric</url-pattern>
-
</servlet-mapping>
-
</web-app>
GenericServlet
类是一个抽象类,并且是
Servlet
接口的实现类,
HttpServlet
类的父类,
GenericServlet
类是一个抽象类,并且是
Servlet
接口的实现类,
HttpServlet
类的父类,
GenericServlet
类是一个抽象类,并且是
Servlet
接口的实现类,
HttpServlet
类的父类,
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/75201574
- 点赞
- 收藏
- 关注作者
评论(0)