如何更好的使用servlet?GernericServlet可以由自己仿照一个出来,下面就是介绍了如何写这样的一个类

1.init方法 妥善的保存config对象
2.空参init方法,为了防止开发人员重写 原生init方法
3.service方法空实现=> 声明城抽象
4.destory方法空实现
5.实现getServletInfo,getServletConfig
6.实现了servletConfig接口. 接口中的方法直接调用config实现类实现.

代码实现

package ming.com.hello;

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

import javax.ejb.Init;
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 abstract class GenericServlet implements Servlet,ServletConfig{

private ServletConfig config; //固定写法
@Override
public void destroy() {
}

@Override
public ServletConfig getServletConfig() {
return config;
}

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

@Override
public void init(ServletConfig config) throws ServletException {
this.config=config;
this.init();
}

//添加一个空参应用方法,来避免用户调用的时候讲 有参引用方法覆盖,
//相当于用户重写空参init()方法即可完成初始化
public void init() throws ServletException{

}

//将此 方法声明为抽象方法,强迫用户去实现这个方法,因为这个方法是你调用这个类的目的,否则没有意义
@Override
public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;

@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();
}

}

注意:1、加上一个无参构造方法,来避免用户调用的时候调用有参构造方法覆盖,
             相当于用户重写空参init()方法即可完成初始化

2、将server()方法声明为抽象方法,强迫用户去实现这个方法,因为这个方法是你调用这个类的目的,否则没有意义

3、为了让用户更加方便的使用ServletConfig的四个方法,在这个类中实现这个接口,完善这几个方法

Servlet的优化.GenericServlet的更多相关文章

  1. Java Servlet(五):GenericServlet与Servlet、HttpServlet之间的关系(jdk7+tomcat7+eclipse)

    本篇主要记录下,对GenericServlet的作用理解,及其与Servlet/HttpServlet之间的关系. 示例完成业务: 1.新建一个login.jsp页面,要求改页面能输入username ...

  2. 对JSP和Servlet性能优化,提升执行效率

    你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访问量?本文讲述了开发高性能.高弹性的JSP页面和Servlet的性能优化技术.其意思是建立尽可能快的并能适应数量增长的用户及其请求.在本文 ...

  3. 初学Servlet之继承GenericServlet

    package app01a;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.GenericSer ...

  4. Servlet接口、GenericServlet类、HttpServlet类

    Servlet是最顶层的接口,其提供的方法有: init(ServletConfig config):void // 初始化 getServletConfig():ServletConfig // 取 ...

  5. JSP和Servlet性能优化经验谈

    你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访问量?本文讲述了开发高性能.高弹性的JSP页面和Servlet的性能优化技术.其意思是建立尽可能快的并能适应数量增长的用户及其请求.在本文 ...

  6. [技巧篇]01.Servlet的优化模版代码

    Servlet.java的模版 #---------------------------------------------# # <aw:description>Template for ...

  7. servlet实现的三种方式对比(servlet 和GenericServlet和HttpServlet)

    第一种: 实现Servlet 接口 第二种: 继承GenericServlet 第三种 继承HttpServlet (开发中使用) 通过查看api文档发现他们三个(servlet 和GenericSe ...

  8. 超全面的JavaWeb笔记day09<Servlet&GenericServlet&HttpServlet&ServletContext>

    1.Servlet概述 2.Servlet接口 3.GenericServlet 4.HttpServlet 5.Servlet细节 6.ServletContext(重要) Servlet概述 生命 ...

  9. httpServlet,GenericServlet,Servlet源码分析

    httpServlet源码:   /* * Licensed to the Apache Software Foundation (ASF) under one or more * contribut ...

随机推荐

  1. 数据库CAST()函数和CONVERT()函数比较

    对简单类型转换,CAST()函数和CONVERT()函数的效果一致,只是语法不同.前者更易使用,而后者的优势是格式化时间和数值.在以下这几种情况,二者一样: 1-1.SELECT CONVERT(de ...

  2. 重温Javascript(一)

    工作中要用到JavaScript,一组复习笔记. 一些看法 1. 想想JavaScript目前最常用的宿主环境,浏览器或者服务端V8,都是单线程,所以不用过多的考虑并发的问题,如果是协程来实现异步的方 ...

  3. Laravel查询构造器的使用方法整理

    1.结果集 1.1从一张表获取所有行,get方法获取所有行 $users = DB::table('users')->get(); 获取列的值 foreach ($users as $user) ...

  4. D3.js-数值自动变动的条形图表

    开始停止   // <p> <style><!-- button{ background-color:#aaaaaa; font-family:微软雅黑; font-si ...

  5. [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  6. 使用HTML5的canvas做图片剪裁

    前言 图片裁剪上传,不仅是一个很贴合用户体验的功能,还能够统一特定图片尺寸,优化网站排版,一箭双雕. 需求就是那么简单,在浏览器里裁剪图片并上传到服务器. 我第一个想到的方法就是,将图片和裁剪参数(x ...

  7. mysql性能优化配置总结

    看了一些优化mysql运维的一些书籍,在此记录总结下:进入mysql客户端输入以下sql:1.连接设置 show variables like '%max_connection%'; show sta ...

  8. MongoDB数据库安装及配置环境终极教程(windows10系统)

    本文是笔者花时间踩坑踩生气了写出来的!转载请注明出处@http://www.cnblogs.com/tim100/!请尊重我的劳动成果!谢谢! 今天,给大家说说在windows10系统下MongoDB ...

  9. Linux-进程描述(2)之进程标识符与进程位置

    在上一篇文章中详细介绍了task_struct结构体内的常见成员,然后我们就来看一下具体内容.每个进程都把它的信息放在 task_struct 这个数据结构中,task_struct 包含了这些内容: ...

  10. html、css、js实现简易计算器

    学习HTML,CSS,JS一个月后,想着能自己是否能写出一个简单的东西,故编写了简易的计算器,之前也写过一个坦克大战,坦克大战的有些基本功能没有实现, 故也没有记录下来,想来,对这行初来咋到的,还是需 ...