三种实现servlet的方式有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三种实现servlet的方式有啥区别相关的知识,希望对你有一定的参考价值。

参考技术A 开发Servlet有三种方式:
1、实现Servlet接口
2、通过继承GenericServlet
3、通过继承HttpServlet
区别如下:
首先明确,Servlet并不是专门用于处理Http请求的。

1)原生Servlet接口

package javax.servlet;
import java.io.IOException;
public interface Servlet
public void init(ServletConfig config) throws ServletException;
public ServletConfig getServletConfig();
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;
public String getServletInfo();
public void destroy();


可以看到Servlet接口是定义在javax.servlet包中,该接口定义了5个方法。
init() :在Servlet实例化之后,Servlet容器会调用init()方法,来初始化该对象,主要是为了让Servlet对象在处理客户请求之前可以完成一些初始化工作,比如:建立数据库的连接,获取配置信息。

service():容器调用service()方法来处理客户端的请求。

destroy():当容器检测到一个Servlet对象应该从服务器中被移除的时候,容器会调用该对象的destroy方法,以便让Servlet对象可以释放它所使用的资源,保存数据到持久化存储设备中,例如:将内存中的数据保存到数据库中,关闭数据库的连接。

2)GenericServlet
直接通过实现Servlet接口来编写一个Servlet类,就需要实现Servlet接口中定义的5种方法,为了简化Servlet的编写,在javax.servlet包中,给我们提供了一个抽象的类GenericServlet,它提供了除service()方法外的其他4种方法的简单实现。GenericServlet类定义了一个通用的,不依赖具体协议的Servlet

package javax.servlet;

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

public abstract class GenericServlet
implements Servlet, ServletConfig, java.io.Serializable

private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
private static ResourceBundle lStrings =
ResourceBundle.getBundle(LSTRING_FILE);

private transient ServletConfig config;

public GenericServlet()

public void destroy()


public String getInitParameter(String name)
ServletConfig sc = getServletConfig();
if (sc == null)
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));


return sc.getInitParameter(name);


public Enumeration<String> getInitParameterNames()
ServletConfig sc = getServletConfig();
if (sc == null)
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));


return sc.getInitParameterNames();


public ServletConfig getServletConfig()
return config;


public ServletContext getServletContext()
ServletConfig sc = getServletConfig();
if (sc == null)
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));


return sc.getServletContext();


public String getServletInfo()
return "";


public void init(ServletConfig config) throws ServletException
this.config = config;
this.init();


public void init() throws ServletException



public void log(String msg)
getServletContext().log(getServletName() + ": "+ msg);

public void log(String message, Throwable t)
getServletContext().log(getServletName() + ": " + message, t);


public abstract void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;

public String getServletName()
ServletConfig sc = getServletConfig();
if (sc == null)
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));


return sc.getServletName();



3)HttpServlet

由于大多数网络应用中,都是浏览器通过HTTP协议去访问服务器资源,而通常编写的Servlet也主要是应用于HTTP协议的请求和响应,为了快速开发应用于HTTP协议的Servlet,Sun公司在javax.servlet.http包中给我们提供了一个抽象的类HttpServlet,他继承自GenericServlet类,用于创建适合Web站点的HTTP Servlet。

比如,doPost doGet这些方法,从request解析请求信息开始,将根据http协议的格式进行解析,分发到不同的请求方法处理中,doPost doGet也肯定是被service方法调用的。

WDS AP ROUTER三种模式有啥区别???????

WDS、AP、ROUTER三种模式区别为:上网方式不同、放大信号不同、适用场所不同。

一、上网方式不同

1、WDS模式:WDS模式需要连接ADSL Modem(猫)或者光猫等设备来进行配置才可以上网。

2、AP模式:AP模式无需任何配置就可以上网。

3、ROUTER模式:ROUTER模式通过无线的方式连接上网。

二、放大信号不同

1、WDS模式:WDS模式不可以放大上网的网络信号。

2、AP模式:AP模式不可以放大上网的网络信号。

3、ROUTER模式:ROUTER模式可以放大上网的无线信号。

三、适用场所不同

1、WDS模式:WDS模式适用场所为用户自己办理了宽带业务情况下使用。

2、AP模式:AP模式适用场所有例如宾馆、酒店或者其它提供了一根网线上网的场所。

3、ROUTER模式:ROUTER模式适用场所为有一台可以上网的无线路由器,但是该无线路由器的无线信号覆盖有线,希望无线信号可以覆盖更广泛的范围时使用。

参考技术A

1、功能不同

Router为可被路由的协议(Routed Protocol)由路由协议(Routing Protocol)传输,前者亦称为网络协议。

WDS是建构在FHSS或DSSS底下,可让基地台与基地台间得以沟通,比较不同的是有WDS的功能是可当无线网路的中继器,且可多台基地台对一台,目前有许多无线基台都有WDS。

无线AP即无线接入点,它用于无线网络的无线交换机,也是无线网络的核心。

2、作用不同

Router这些网络协议执行在源与目的设备行为的用户应用间通信所需的各种功能,不同的协议中这些功能可能差异很大。网络协议发生在OSI参考模型的上四层:传输层、会话层、表示层和应用层。

在家庭应用方面则略有不同,WDS的功能是充当无线网络的中继器,通过在无线路由器上开启WDS功能,让其可以延伸扩展无线信号,从而覆盖更广更大的范围。

无线AP是移动计算机用户进入有线网络的接入点,主要用于宽带家庭、大楼内部以及园区内部,可以覆盖几十米至上百米。

3、工作原理不同

Router通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考协议的第二层,而路由发生在第三层(网络层)。

WDS就是可以让无线AP或者无线路由器之间通过无线进行桥接(中继),而在中继的过程中并不影响其无线设备覆盖效果的功能。

无线AP(又称会话点或存取桥接器)是一个包含很广的名称,它不仅包含单纯性无线接入点(无线AP),同样也是无线路由器(含无线网关、无线网桥)等类设备的统称。

参考资料来源:百度百科-AP

参考资料来源:百度百科-wds

参考资料来源:百度百科-Router

参考技术B 在无线路由器里设定,就是指无线路由器的三种工作模式:
WDS:无线路由器之间通过无线连接,以增加单一无线路由器的无线覆盖范围.
AP:无线接入点,就是去掉路由和其他功能单一的仅提供无线接入和互联的无线交换机.
ROUTER:路由器,就是能提供多个接入设备共享外网的网际连接设备.
WDS模式时,一般是有无线路由器连接宽带,增加的这个无线路由器用此模式无线连接前一路由器扩充延伸无线网络覆盖.一般称为桥接.
AP模式时,实用于有线连接上一路由器,供无线设备接入.
ROUTER模式:就是该路由器直接连接宽带,与前两个模式不同,需要设定WAN口.本回答被提问者采纳

以上是关于三种实现servlet的方式有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

实现servlet的三种方式

Servlet实现的三种方式

Servlet的三种实现方式

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

Servlet 编写三种方式

Servlet 编写三种方式