(1)Servlet和HttpServlet

2024-06-09 12:58
文章标签 servlet httpservlet

本文主要是介绍(1)Servlet和HttpServlet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目标:

  • 理解Servlet的基本知识
  • 了解Servlet的体系结构
  • 实现并部署Servlet
单 词说 明
servlet服务器端小程序
generic一般的,普通的,非特殊的
response响应,回答
initialize初始化
destroy破坏,毁坏,消灭

文章目录

  • 一.什么是servlet?
  • 二.Servlet的体系结构
    • 2.0 HttpServlet常用API总结
    • 2.1 Servlet的生命周期
    • 2.2 标准Web应用程序的目录结构
  • 三.总结


一.什么是servlet?

缩合词:server + applet,可以理解成服务端的小程序.
Servlet是用Java语言编写的程序,它运行在Web服务器上,用以处理来自客户端的请求; 它一般会把处理的结果以为HTML的形式返回,在客户端形成动态网页。
这里写图片描述
Servlet的优点 :
Servlet运行在Web服务器中,可以扩展服务器的功能;
Servlet可以和其他资源交互,从而生成返回给客户端响应的内容,即动态网页;
使用Java编写,所以能够跨平台;
Java的所有优点都可以在Servlet中体现;
Servlet很安全,因为访问Servlet的唯一途径是通过服务器;
只要符合Servlet规范的Servlet容器都可以运行Servlet。
Servlet容器:
事实上,Servlet本身就是普通的Java类,在需要的时候被实例化,在不需要的时候被销毁,而Servlet的实例化和销毁工作由Servlet容器来完成; Servlet在Servlet容器内运行,Servlet容器负责调度Servlet,并控制着Servlet的生命周期; Apache Tomcat既是Web服务器软件,同时也是符合规范的Servlet容器。
Servlet API:
与Servlet相关的两个包:
javax.servlet javax.servlet.http
javax.servlet javax.servlet


javax.servlet包中包含了支持通用的,跨协议的Servlet的相关接口和类;
javax.servlet.http包中则包含了特定于HTTP协议的Servlet相关类;
在Tomcat安装目录/common/lib路径下,可以找到servlet-api.jar文件。


javax.servlet包中的 接口 和 类:

接口名称说 明
Servlet这是每个Servlet都必须实现的接口,它定义了一系列必须由Servlet实现的方法
ServletRequest此接口用于将客户端的请求信息传送给Servlet
ServletConfig此接口用于对客户端做出响应
ServletResponse此接口定义Servlet配置对象,以便于容器将信息传递给Servlet
ServletContext此接口定义了一组方法,用于Servlet与容器进行通信
类名称说 明
GenericServlet抽象类,定义一个通用的、独立于底层协议的Servlet
ServletInputStream这是提供输入流用于读取来自客户端请求的二进制数据的类
ServletOutputStream此类提供输出流用于将二进制数据发送到客户端
ServletExceptionServlet在执行过程中遇到困难时抛出该异常

javax.servlet.http包中的 接口 和 类:

接口名称说 明
HttpServletRequest该接口扩展ServletRequest接口,定义了一系列用于描述HTTP请求的方法
HttpServletResponse该接口扩展ServletResponse接口,提供服务器对客户端的响应对象
HttpSession该接口提供客户端与服务器端的会话标识
类名称说 明
HttpServlet该类是最常用于扩展Servlet的类,因为很多Servlet应用程序都遵照HTTP协议运行。此类支持HTTP协议功能以及Servlet类的方法,它是个抽象类。它接收客户端的请求,并向客户端发送响应
Cookie此类用来创建Cookie,它存储了少量由Servlet发送至客户端的信息

二.Servlet的体系结构

这里写图片描述

2.0 HttpServlet常用API总结

这些方法使用一般都在自己写的servlet中用this调用。
javax.servlet.http.HttpServlet 中提供了一系列让子类重写的方法,在不同的时刻会调用执行这些方法:

方 法 原 型说 明
public void init(ServletConfig config)throws ServletException在初始化Servlet时调用一次,如有特殊需要,可重写该方法
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException如果客户端是以GET方式提交请求时执行,应当重写此方法
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException如果客户端是以POST方式提交请求时执行,应当重写此方法
public void distroy()当销毁Servlet实例时调用一次,如有需要释放的资源,可重写该方法

HttpServlet还提供了一些不常用的方法,如有非常特殊的需要,可考虑重写它们:
(处于安全原因,一般不会重写这些方法,所以这些方法不常用。)

方 法 原 型说 明
protected void doDelete(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException用于删除服务器上的文档,这个方法由于复杂的策略问题不被广泛支持
protected void doHead(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException如果客户端只是想查看响应头,可通过此方法来确定文档的大小,修改时间或一般可用性
protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException用于将文档直接放置在服务器上
protected void doOptions(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException用于询问服务器上的某种资源有什么选项可用

HttpServlet中还提供了一些其他的方法,这些方法不是用来重写,而是提供某些功能的:
这里写图片描述
特别注意:
在servlet中调用这些方法直接用this.getServletContext() ; 返回上下文对象. 一个工程共用同一个.
在servlet中调用这些方法直接用this.getServletConfig() ; 返回当前servlet的ServletConfig对象.
getServletName() 是返回在web.xml中配置servlet时的servlet名字。
getServletContext() 返回的是上下问的对象,里面常用的方法有 .setAttribute();
getServletInfo() 返回的是自己的写的类继承自HttpServle后t时类名上面的文档注释。

HttpServlet中还包含一个service方法,其原型如下:public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException 此方法用来调度客户端的请求,API文档中明确规定,请勿重写该方法。

2.1 Servlet的生命周期

Servlet容器负责调度Servlet并控制它的生命周期;
这里写图片描述

2.2 标准Web应用程序的目录结构

这里写图片描述


三.总结

Servlet其实就是运行在服务器端的小应用程序;
Servlet容器负责调度Servlet,并控制着它们的生命周期;
一般通过继承HttpServlet的方式来实现Servlet;
根据客户端请求的方式,只需重写doGet或doPost方法即可;
要使容器正确识别Servlet,则必须填写配置文件web.xml;
WEB应用程序必须要依照标准的目录结构,方可正确运行。
在HTML中我们已经知道,网页表单的提交有Get和Post两种方式;
对于Get提交方式,会将要提交的数据附加在URL字符串的后面一并发送到服务器;
而Post提交方式,则是将数据隐含在HTTP协议的请求报文中发送至服务器;
如果是Get的提交方式,在Servlet中要重写doGet方法进行处理,而如果是Post方式,则要重写doPost方法。

这篇关于(1)Servlet和HttpServlet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045243

相关文章

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

JavaEE7 Servlet 3.1(JSR 340)规范中文版

http://www.iteye.com/news/27727-jinnianshilongnian     Jave EE 7中的部分规范已正式获得批准通过,其中包括JSR340 Java Servlet 3.1规范,去年翻译了该规范,在此分享出来,希望对某些朋友有所帮助,不足之处请指正。   点击直接下载    在线版目录   Servlet3.1规范翻译

请解释Java Web应用中的前后端分离是什么?它有哪些好处?什么是Java Web中的Servlet过滤器?它有什么作用?

请解释Java Web应用中的前后端分离是什么?它有哪些好处? Java Web应用中的前后端分离 在Java Web应用中,前后端分离是一种开发模式,它将传统Web开发中紧密耦合的前端(用户界面)和后端(服务器端逻辑)代码进行分离,使得它们能够独立开发、测试、部署和维护。在这种模式下,前端通常通过HTTP请求与后端进行数据交换,后端则负责业务逻辑处理、数据库交互以及向前端提供RESTful

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示; 代码如下: Demo07.jrxml <?xml version="1.0" encoding="UTF-8"?><!-- Created with Jaspersoft Studio version 6.6.

servlet用反射代替if..else

String methodName = request.getParameter("method"); Method method = this.getClass().getDeclaredMethod(methodName,HttpServletRequest.class, HttpServletResponse.class); method.invoke(this, request, re

【Servlet】基础入门

1、使用 IDEA 建 javaWeb 及 Servlet http://blog.csdn.net/u012532559/article/details/51013400 2、doget与dopost的区别 http://www.cnblogs.com/cyy-13/p/5711235.html

Servlet mapping specifies an unknown servlet name Action

看一下web.xml中<servlet-mapping>有没有配错

怎么通过Servlet向浏览器发送中文

1.通过Servlet向浏览器发送中文,会出现以下的乱码: 2.为什么通过Servlet向浏览器发送中文会产生乱码呢?          在Servlet编程中,经常需要通过response对象将一些信息返回给浏览器,给我们的客户端,而我们在服务器端显示的中文,但是响应给客户端浏览器却是乱码,这主要是由于response对象的getWriter()方法返回的PrintWriter对象默认

请解释Java Web中的Filter的作用和使用场景。什么是Java Web中的JSP?请解释其与Servlet的关系及各自优势。

请解释Java Web中的Filter的作用和使用场景。 Java Web中的Filter(过滤器)是一个重要的组件,它在客户端与服务器端之间扮演着关键角色。Filter的主要作用是在请求到达Servlet或JSP之前,或者响应返回给客户端之前,对请求和响应进行预处理和后处理。以下是Filter的详细作用和使用场景: Filter的作用 请求预处理:在请求到达目标资源(如Servlet、J

音乐播放器javaweb项目近日总结,用js,css,HTML,servlet,mybatis来写注册登录忘记密码(还没写好)

这几天学了js,css,HTML,servlet,mybatis,还有axios,目前axios还没有用到,学的比较慢因为那个servlet,axios我看不懂,可能看懂了然后不会用,之后给我们上了一节课,感觉每一个东西单独拆开好像学过,但是放在一起听的很懵,今天我就到处翻博客反复看了点代码,终于知道了一点前后端交互就赶紧写了点。 因为是小白所以写的有些感觉没必要写的比较详细方便自己记忆