servlet-3(核心)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet-3(核心)相关的知识,希望对你有一定的参考价值。

1.GenericServlet

  通过实现servlet接口时有一个很不方便的问题,有太多不需要实现的方法需要实现,通常我们只关注service方法,在service()中完成业务逻辑,但由于servlet接口中还存在其他方法,所以每次都不方便。这时我们可以通过定义一个抽象类,实现serlvet其他不需要实现的方法,或者让它为空方法体而将service方法写为抽象方法,想实现servlet方法时只需要继承这个抽象类就可以了

技术分享图片

上面的类有一个问题就是无法获取ServletConfig对象,所以可以在这个类中创建一个ServletConfig对象,并在inti()方法中赋给它,同时可以添加其他比较重要的方法,如获取上下文,以及获取初始化属性等。

技术分享图片

技术分享图片

若一个类继承了这个类,但要求我们在初始化时做一些工作那我们该怎么办呢?

我们可以在这个类中编写一个无参inti()方法(这个方法是为了让子类重写的),我们可以在已有的init()方法中实现这个无参init方法

技术分享图片

 

在servlet规范中已经位大家定义好了一个java.servlet.GenericServlet抽象类,也就是说我们以后实现servlet只需要继承这个类就可以了

 

2.HttpServlet

  为了保证系统的安全性,我们必须获取用户提交请求的方式,这样就可以根据提交的请求方式的不同来处理不同的操作。那么如何获取到用户请求的提交方式呢?我们需要从请求对象的ServletRequest对象获取,但是查看ServletRequest的API文档,并没有可以获取到提交方式的方法。但是其子接口HTTPServletRequest中有getMethod()方法可以获取用户的提交方式。

我们先定义一个HTTPServlet类继承自GenericServlet,首先在service方法中将ServletRequest对象和ServletResponse对象强转为HttpServletRequest和HttpServletResponse对象,然后再添加一个参数为HttpServletRequest和HttpServletResponse的service方法,在里面获取提交方式并进行判断

技术分享图片

技术分享图片

同样servlet规范中已经创建好了javax.servlet.HttpServlet类  QAQ

 

  

 

以上是关于servlet-3(核心)的主要内容,如果未能解决你的问题,请参考以下文章

Servlet 2.0 && Servlet 3.0 新特性

Java 之 Servlet 3.0

Servlet 3.0 新特性详解

Servlet 3.0 规范注解规范

Servlet 3.0 特性

Spring全注解开发----Servlet 3.0