六祎:GnericServlet实操
1.AServlet.java
阿里云大学课堂课时6 https://edu.aliyun.com/lesson_1700_13645#_13645
package cn.lystudio.web.servlet;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/*
*
*查看Sevlet接口中的方法
*
*/
public class servlet1 implements Servlet {
/*
*
*它是生命周期方法
*它会在Servlet被销毁之前调用,并且它只会被调用一次 (死之前调用,哈哈哈哈)
*
*/
@Override
public void destroy() {
}
/*
*
* 可以用来获取Servlet的配置信息
*
*/
@Override
public ServletConfig getServletConfig() {
return null;
}
/*
* 获取Servelt信息
*
*/
@Override
public String getServletInfo() {
return "我是一个快乐的Servlet";
}
/*
*
*它是生命周期方法
*它会在Servlet对象创建之后马上执行,并只执行一次!(出生之后,哈哈哈哈)
*
*/
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//servletConfig
}
/*
* 它是生命周期方法
* 它会被调用多次
* 每次处理请求都是在调用这个方法!
*
*
*/
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
//args=request args1=response
}
}
2.BServlet.java
package cn.lystudio.web.servlet;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
*
* 模拟GenericServlet
*
*/
public class BServlet implements Servlet {
private ServletConfig config;
/*
*
* 需要就写,不需要就不写
* */
@Override
public void destroy() {
}
/*
*
*
* 这个方法一定会在init()方法之后被调用
* init()被调用后,本类的成员this.config已经有值了
* */
@Override
public ServletConfig getServletConfig() {
return this.config;
}
/*
*
* 没有用的东西,爱实现不实现
* */
@Override
public String getServletInfo() {
return null;
}
/*
* 由tomcat来调用,
* 并且只调用一次 它是这是这些方法中第一个被调用的,它会在构造器之后马上被调用
*/
@Override
public void init(ServletConfig arg0) throws ServletException {
//把Tomcat传递的servletconfig赋值给本类的一个成员,其实就是把它保保存起来,方便再其他方法中使用!
this.config=config;
init();
}
public void init() {
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException,
IOException {
System.out.println("每次处理请求都会被调用!");
}
public ServletContext getServletContext() {
//获取Sevlet上下文
return config.getServletContext();
}
public String getServletName() {
//获取的是<servlet-name>中的内容
return config.getServletName();
}
public String getInitParameter(String name) {
//通过名称获取指定初始化参数的值
return config.getInitParameter(name);
}
}
3.CServlet.java
创建一个CServlet.java类,并继承BServlet.java
package cn.lystudio.web.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
//Superclass:继承BServlet
public class CServlet extends BServlet {
public void init() {
System.out.println("汉化");
}
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
String value= getInitParameter("p1");
}
}
4.DServlet.java
继承GernericServlet类
package cn.lystudio.web.servlet;
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class DServlet extends GenericServlet {
public void init()throws ServletException {
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
}
@Override
public void destroy() {
//可写可不写
System.out.println("destroy()");
}
}