|
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()
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("正在销毁");
}
} |
浏览器访问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
|
|