适配器 GenericServlet


* 适配器 (Adapter) - 适配器的作用? 1.我们目前所有的Servlet类都直接实现了javax.servlet.Servlet接口,但是该接口中有些方法是我们暂时不需要的,我们可能只需要编写service方法,直接实现Servlet接口的话,显得代码丑陋,我们有必要添加一
个适配器抽象类,让这个抽象类去实现所有的方法,然后将service方法设置成为抽象方法,这样的话以后所有的servlet类不再去直接实现Servlet接口,而是去继承适配器抽象类,然后只需要重写service方法。 2. 适配器除了可以让代码优雅以外,我们还可以在适配器中提供大量方法,子类继承以后可以在子类中直接使用,进而方便编程。 - 创建适配器? 在Web中创建一个GenericStrvlet抽象类,该抽象类去实现Servlet接口,然后将service方法设置为抽象方法。 该类就是一个适配器,以后不需要直接实现Servlet接口,去继承这个适配器即可,重写service方法。 - 因为原始的init()方法为了保证方法的安全性,用了final修饰,所以子类不能够再继承原始的init()方法了。如果以后程序需要在Servlet对象初始化的时刻执行一段代码怎么办呢? 重写父类的init()方法,但是父类的init()方法中已经有了代码(获取了ServletConfig对象了),如果在子类中重写,那面父类中的init()方法就无效了,那么势必会造成程序问题,况且父类中的init方法为了防止重写,一般都会用final修饰,那就不
能重写了。这个时候怎么办呢? 可以在父类中再写一个init()方法,然后在子类中重写这个新的init()方法,在父类的原始init()方法中调用这第二个init()方法 this.init() 这样就解决了。 * Sun公司已经写好了 javax.servlet.GenericServlet 适配器类,可以直接调用。它即实现了Servlet也实现了ServletConfig * 代码 写一个GenericServlet适配器 ``` import javax.servlet.*;
import java.io.IOException; /**
* Generic抽象类是一个适配器
*/ public abstract class GerericServlet implements Servlet { private ServletConfig config; @Override
public final void init(ServletConfig servletConfig) throws ServletException { this.config=servletConfig;
this.init();
} /**
* 若在初始化时刻需要执行一段代码,那面重写该init()方法
*/ public void init(){ } @Override
public abstract void service(ServletRequest request, ServletResponse response); @Override
public void destroy() { } @Override
public ServletConfig getServletConfig() {
return config;
} @Override
public String getServletInfo() {
return "";
} /**
* 扩展方法
* @return 返回ServletContext对象
*/ public ServletContext getServletContext(){
return getServletConfig().getServletContext();
} }

JAVAEE_Servlet_09_Adapter适配器GenericServlet的更多相关文章

  1. 适配器设计模式及GenericServlet(九)

    一共两个知识点:1.Servlet 里面已经有适配器了,名字叫:GenericServlet.      2.什么是适配器模式. 如果这个接口里面有好多方法,那创建A/B/C这个三个类的时候如果必须继 ...

  2. Android—万能ListView适配器

    ListView是开发中最常用的控件了,但是总是会写重复的代码,浪费时间又没有意义. 最近参考一些资料,发现一个万能ListView适配器,代码量少,节省时间,总结一下分享给大家. 首先有一个自定义的 ...

  3. 打造android偷懒神器———ListView的万能适配器

    如果你去做任何一个项目,我相信你都会跟我有一样的经历,最最普遍的就是列表显示ListView,当然,写N个自定义的适配器也是情理之中.虽说程序员本身就是搬砖,做这些枯燥无味的重复的事情也是理所当然,但 ...

  4. 打造android偷懒神器———RecyclerView的万能适配器

    转载请注明出处谢谢:http://www.cnblogs.com/liushilin/p/5720926.html 很不好意思让大家久等了,本来昨天就应该写这个的,无奈公司昨天任务比较紧,所以没能按时 ...

  5. ListView和Adapter数据适配器的简单介绍

    ListView 显示大量相同格式数据 常用属性: listSelector            listView每项在选中.按下等不同状态时的Drawable divider            ...

  6. Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器

    一.写在前面: 本次我们来讲解一下Android应用中三个适配器:BaseAdapter.SimpleAdapter和ArrayAdapter.其中常见的是BaseAdapter,也是个人推荐使用的适 ...

  7. Adapt适配器

    为接口提供所有的空实现,让使用者仅仅覆盖需要的部分: 本思想肯定有问题,慢慢考究 frame.addWindowListener(new WindowAdapter() { @Override pub ...

  8. Android之ListView性能优化——一行代码绑定数据——万能适配器

    如下图,加入现在有一个这样的需求图,你会怎么做?作为一个初学者,之前我都是直接用SimpleAdapter结合一个Item的布局来实现的,感觉这样实现起来很方便(基本上一行代码就可以实现),而且也没有 ...

  9. 【Android自学日记】两种适配器的使用

    ArrayAdapter适配器: (1)用于显示基本的文字内容 (2)基本使用过程:新建适配器---创建或加载数据源---适配器加载数据源---视图加载适配器 ArrayAdapter(上下文,当前L ...

随机推荐

  1. 页面导入导出EXCEL

    引用 using Microsoft.Office.Interop.Excel;using System.Reflection;//反射命名空间using System.IO; protected v ...

  2. python进阶(2)python最常用的模块

    math math.ceil(a): 用来返回≥a的最小整数 math.floor(a):用来返回≤a的最大整数 round(a [,b]) 如果没有参数b,只有a,round()作用是四舍五入 如果 ...

  3. JavaWeb之servlet管理机制

    一.什么是Servlet 简单的说,浏览器发出请求到tocat服务器,服务器就会初始化一个servlet实例(servlet采取生命托管的方式实现单例,不存在时才会创建实例),servlet示例会启动 ...

  4. es6 快速入门 系列

    es6 快速入门(未完结,持续更新中...) 前言 为什么要学习es6 es6对于所有javaScript开发者来说,非常重要 未来,es6将构成javaScript应用程序的基础 es6中很多特性, ...

  5. 1.1 Python3基础-前言

    >>返回主目录 Python 交互式代码 Python 脚本式代码 第一段Python代码: print('Hello World!') >>返回主目录

  6. strick-footer 粘边布局

    当网页缩小, 缩放到一定高度时(这个高度就是页面内容高度)footer的页尾自动消失,这个就叫做粘边布局 strick-footer 粘边布局基本思路: 主体{ height:100%; } 内容体{ ...

  7. Tomcat后台爆破指南

          0x00 实验环境 攻击机:Win 10 0x01 爆破指南 针对某Tomcat默认管理页面: (1)这里主要是介绍一种比较好用的burp爆破方法: 点击Tomcat后台管理链接 Tomc ...

  8. cve-2019-2725 反序列化远程代码执行

    描述:部分版本WebLogic中默认包含的wls9_async_response包,为WebLogic Server提供异步通讯服务.由于该WAR包在反序列化处理输入信息时存在缺陷,攻击者可以发送精心 ...

  9. 【python+selenium的web自动化】- 控制浏览器的常用操作

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 前言 ​ 本文主要介绍se ...

  10. Java 重入锁和读写锁

    本文部分摘自<Java 并发编程的艺术> 重入锁 重入锁 ReentrantLock,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁.除此之外,该锁还支持获取锁时 ...