自定义基本的GenericServlet及总结

总结:我刚学这章时,它把service()方法用abstract抽象了,然后我突然忘了抽象是怎么用了哈,然后百度查了查,想起来它是父类去定义抽象方法,专门让子类来实现,抽象方法没有方法体。然后在service()方法里调用getServletConfig()方法去获取config对象时,它用了个this.getServletConfig();我又忘了this关键字的用法,然后回忆起来,在一个类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用,只是所有这样的引用中this都可以省略,哈哈忘了这么多。最后我就基本定义了GenericServlet,并且让它实现了ServletConfig接口,以便在service()方法中可以用this关键字直接去调用ServletConfig的方法。

代码附上:

package com.bjpowernode.servlets;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

//缺省适配器设计模式
public abstract class GenericServlet implements Servlet, ServletConfig {

	private ServletConfig config;

	@Override
	public void init(ServletConfig config) throws ServletException {
		this.config = config;// 接受实参
		// System.out.println(config);
	}

	@Override
	public ServletConfig getServletConfig() {

		return config;
	}

	// 抽象方法,专门让子类来实现
	@Override
	public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;

	@Override
	public String getServletInfo() {
		
		return null;
	}

	@Override
	public void destroy() {

	}

	@Override
	public String getInitParameter(String name) {
		return config.getInitParameter(name);
	}

	@Override
	public Enumeration<String> getInitParameterNames() {
		return config.getInitParameterNames();
	}

	@Override
	public ServletContext getServletContext() {

		return config.getServletContext();
	}

	@Override
	public String getServletName() {

		return config.getServletName();
	}
}

 

package com.bjpowernode.servlets;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SomeServlet extends GenericServlet {

	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		System.out.println("执行SomeServlet的service()方法");
	/*	ServletConfig sc = this.getServletConfig();
		String param = sc.getInitParameter("company");
		System.out.println(param);*/
		String param = this.getInitParameter("company");
		String servletname = this.getServletName();
		System.out.println(param);
		System.out.println(servletname);
	}
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值