>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 23505 个阅读者 刷新本主题
 * 贴子主题:  servlet三种方式实现servlet接口 回复文章 点赞(0)  收藏  
作者:日月光华    发表时间:2019-11-03 19:18:37     消息  查看  搜索  好友  邮件  复制  引用

servlet三种方式实现servlet接口

简单介绍
Servlet接口实现类

1、Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。
2、HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
3、HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。

接口分离原则:

    将一个包含多功能的单一接口根据函数功能分离称多个独立的接口,同时每个接口都有自己特有的、有意义的、具有实际哦那功能的修饰器。
    多重接口修饰:

         每个修饰器设计时都需要首先实现他要修饰的接口,可以配合应用 适配器和修饰器这两个模式来构建多重修饰器,同时也能保证代码量最少。
客户端构建:

    为客户端提供接口实例的方式一定程度上取决于接口实现的数目。如果每个接口都有自己特有的实现,那就需要构造所有实现的实例并提供给客户端。或者如果所有的接口的实现都包含在单个类中,那么只需要构建该类的实例就能够满足客户端的所有依赖。
    1、多接口、多实例:
        控制器类:将所有方法整合到控制器类中(构造函数传入参数为各个接口)。控制器类中的每个方法都需要一个不同的接口来执行他的功能。
    2、单接口、单实例:
        在单个类中继承并实现所有接口。这样将每个接口的实现方法都整合到一个类中。(一般用于叶子实现类)

Servlet的作用:

1.接收请求数据
2.处理请求
3.完成响应
Servlet接口中的五大方法:
其中有三个是生命周期方法:
1.void init(ServletConfig).当Servlet对象被服务器创建时调用,仅调用一次。
2.void service(ServletRequest, ServletResponse).可被服务器调用多次。
3.void destroy().服务器关闭连接之前调用,仅一次。
另外的两个:
4.ServletConfig getServletConfig()
5.String getServletInfo()
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
Servlet代码源
View Code
HttpServlet代码源]
View Code
GenericServlet代码源
View Code

实现接口代码:
package com.wbg;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/MyServlet")
public class MyServlet implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化servlet");
    }

    @Override
    public ServletConfig getServletConfig() {
        System.out.println("getServletConfig()");
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("正在销毁");
    }

    @Override
    public String getServletInfo() {
        System.out.println("getServletInfo()");
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("正在销毁");
    }
}

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

浏览器访问servlet时,需要将servlet与路径绑定,需要在web.xml中对servlet进行配置:


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>

<servlet-name>testservlet</servlet-name>
        <servlet-class>com.wbg.testservlet</servlet-class>
    </servlet>
</web-app>

实现接口的意义:

1、接口和实现分离给软件系统提供了无限的想像空间,才使得软件世界如此丰富多彩。
2、接口和实现分离使得多态变为可能
3、接口和实现分离使得解耦变为可能
4、接口和实现分离使得组合更有意义
5、接口和实现分离使得设计模式变为可能,才能衍生出23种设计模式。

简单的说接口和实现分离给软件系统提供了无限的想象空间、多态变为可能、解耦变为可能、组合更有意义、设计模式变为可能,才能衍生出23钟设计模式(创建型、结构型、行为型)
此主题相关图片如下:

此主题相关图片如下:



程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->泛型
  JavaWeb开发-->自定义JSP标签(Ⅱ)
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->对象的序列化与反序列化
  精通Spring-->创建综合购物网站应用
  Vue3开发-->Vue组件开发高级技术
  设置请求数据的字符编码的过滤器
  http状态码大全100-599状态详解
  HTML5 WebSocket的用法
  JSP 异常处理
  JSP 服务器响应:自动刷新时间的范例
  JSP 生命周期
  Servlet 生命周期
  在JSP中如何取得form表单中被选中的radio项的值
  HTTP和HTTPS的请求和响应
  JSP还有必要学吗 这篇文章告诉你
  好书推荐:《Tomcat与JavaWeb开发技术详解》第3版
  关于JSTL标签库版本的升级和下载
  Tomcat的各个版本比较
  Java高级——HTTP重定向实现负载均衡
  JavaEE的发展趋势
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。