文档章节

java servlet拾遗(1)-Servlet总揽

haoran_10
 haoran_10
发布于 2016/07/15 16:38
字数 766
阅读 23
收藏 1
点赞 0
评论 0

一、总的来看:java servlet API 类框图

(1)、Servlet Api的核心是javax.servlet.Servlet接口,包括5个方法,3个方法由Servlet容器来调用

  • public void init(ServletConfig config) throws ServletException;  初始化资源,容器启动的时候
  • public void service(ServletRequest req, ServletResponse res) 

 throws ServletException, IOException;   负责请求,并进行业务处理,并返回响应

  • public void destroy(); 负责释放Servlet对象占用的资源。当Servlet结束对象时,调用该方法。

另外两个是返回Servlet的相关信息的方法

  • public ServletConfig getServletConfig();  返回一个ServletConfig 对象,包含了Servlet初始化参数信息
  • public String getServletInfo(); 返回一些简要的Servlet文本信息

 

(2)、GenericServlet 抽象类实现了Servlet接口的通用方法,屏蔽了网络应用层协议,还实现了ServletConfig  和Serializable接口。个人觉得意义不大,并没有什么卵用。

 

(3)、javax.servlet.http.HttpServlet类 ,顾名思义,是基于http协议通用实现

  • 好像暂且也只有这么一个协议层,并没有什么TcpServlet,UdpServlet等等之类的Servlet,当然了,Servlet的创建者高瞻远虑,还是值得崇拜的
  • 在自定义的Http协议的,基于javaWeb开发的应用中,都继承HttpServlet类。
  • http协议把客户请求get,post,put,delete等多种方式,而HttpServlet则通过重载protected void service(HttpServletRequest req, HttpServletResponse resp)  throws ServletException, IOException把每一种请求方式都提供了相应的服务方法,我们只要继承该方法,即可提供相应的http协议方法给客户端。如图领略一些:

(4)、javax.servlet.ServletRequest接口,表示客户端的请求,当Servlet容器接收客户的请求时,Servlet容器把客户端的请求都解析并封装到ServletRequest对象,供Servlet对象调用service()方法时使用

 

(5)、javax.servlet.http.HttpServletRequest 顾名思义,就是基于http协议的客户端的请求信息,主要包括http协议里的

  • 请求header信息,包括编码,长度,响应类型等等
  • 请求的body信息
  • 请求cookie信息
  • 请求的方法
  • 而继承于ServletRequest的public ServletInputStream getInputStream() throws IOException; ,则是其他方法的数据源头

(6)、javax.servlet.ServletResponse 接口,表示响应给客户端的结果,主要是调用

  • public ServletOutputStream getOutputStream() throws IOException;  通过该方法,输出给客户端响应的二进制信息
  • public PrintWriter getWriter() throws IOException; 直接输出文本类信息
  • public void flushBuffer() throws IOException;最后都要调用该方法,把缓冲区内的数据全部输出到客户端

 

(7)、javax.servlet.http.HttpServletResponse 基于http协议的响应接口,对应HttpServletRequest  ,包括返回给客户端的header,body,cookie,当然还有基于cookie的回话。

 

(8)、javax.servlet.ServletConfig 接口 主要是作为配置参数用,也可以自定义配置文件代替

 

(9)、javax.servlet.ServletContext 接口 

  • Servlet启动时创建,且尽创建一个ServletContext对象
  • web应用的总管家
  • 用于在Web应用范围内 存取共享数据的方法
  • 访问当前Web应用的资源
  • 访问Servlet容器中的其他web应用
  • 访问服务器端的文件系统资源
  • 日志输出

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
haoran_10
粉丝 25
博文 88
码字总数 80846
作品 0
杭州
程序员
Spring 和 JavaEE的关系

Java EE vs Spring. Or: What is a standard? 什么是JavaEE J2EE是一系列技术标准所组成的平台。JavaEE包含了对一系列标准(接口)的实现。如果你要用这些接口,恐怕要使用JavaEE服务器而不仅...

Finley.Hamilton
2014/11/12
0
0
9.java web的发展 javaweb是什么 J2EE发展历史 规范 J2EE是什么 发展背景 组件标准 J2EE好处作用 Servlet 含义 本质 发展 java在web中的发展 servlet工作流程 java 开发web项目发展 javaBean jsp

javaweb 本质上来说就是使用java 语言来解决企业web应用中一系列技术体系与规范; jdk1.2 playground 此版本中把java技术体系拆分为三个方向 J2SE J2EE J2ME 这个大家都知道 其中之一的J2EE,...

noteless
06/29
0
0
如何成为一个优秀的JSP程序员

一个普通的错误是把JSP当作简化的Java,它不是,(事实上, JSP是简化的Servlet)程序员通常试着没有学习要求的支持技巧而直接学习JSP。JSP是一个衔接技术,并且成功地连接你需要理解的另外的...

五味格子
2011/05/11
0
0
六、JSP的由来以及与Servlet的关系

JavaWeb在有了Servlet这项技术以后,就可以编写动态网页了。在动态网页中,一般来说样式是不变的,变化的是数据。如果程序员在Servlet类中写了大量的静态代码,例如out.println("<html>");这...

Wakeeee_
07/09
0
0
浅谈jsp、freemarker、velocity区别

以前做web开发页面层用的基本就是就是,最近公司java项目页面层用的技术是velocity。听说jsp要淘汰,也不知道是真是假,但本人还是比较喜欢jsp的,下面是网上查找的javaweb项目页面3种技术的...

cccyb
2017/10/21
0
0
关于Java Servlet编译的问题

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接...

遮霜挡雪
2014/10/22
0
0
Java EE部分核心技术简介

EJB — JavaEE的基石: 1、 EJB (Enterprise JavaBeans) : 一个Java服务器端组件开发的规范,定义了一个用来开发面向对象分布式应用组件的标准方法,软件厂商根据它来实现EJB服务器。 Java...

顶层设计
2012/08/03
0
0
(JavaEE-07)JSP.md

JSP JSP全称是Java Server Pages,它和Servlet技术一样,都是SUN公司定义的一种用于开发动态Web资源的技术。JSP的编写就像编写HTML一样简单,但是与HTML不同的是,在JSP中,可以编写Java代码...

_-Leon-_
2014/07/04
0
0
如何成为一个优秀的JSP程序员

一个普通的错误是把JSP当作简化的Java,它不是,(事实上, JSP是简化的Servlet)程序员通常试着没有学习要求的支持技巧而直接学习JSP。JSP是一个衔接技术,并且成功地连接你需要理解的另外的...

五味格子
2011/05/11
0
0
利用Apache AXIS 1 发布WebService

最近在论坛遇到很多朋友问AXIS发布webService的问题,这个问题已经回答了很多次了,现在特别发布一文章,说明AXIS 1的基本用法。 //很庆幸,CSDN的发文编辑器已经改版本,不那么难编辑了。 ...

张胜军
2013/03/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
0
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
0
0
流利阅读笔记33-20180722待学习

黑暗中的生物:利用奇技淫巧快活生存 Daniel 2018-07-22 1.今日导读 如果让你在伸手不见五指的黑暗当中生存,你能熬过几天呢?而大千世界,无奇不有。在很多你不知道的角落,有些生物在完全黑...

aibinxiao
昨天
2
0
Hystrix降级逻辑中如何获取触发的异常

通过之前Spring Cloud系列教程中的《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》一文,我们已经知道如何通过Hystrix来保护自己的服务不被外部依赖方拖垮的情况。但是实际...

程序猿DD
昨天
0
0
gin endless 热重启

r := gin.New()r.GET("/", func(c *gin.Context) {c.String(200, config.Config.Server.AppId)})s := endless.NewServer(":8080", r)s.BeforeBegin = func(add string) ......

李琼涛
昨天
0
0
JAVA模式之代理模式

平时一直在用spring,spring中最大的特效IOC和AOP,其中AOP使用的就是代理模式.闲着无聊,随手写了一个代理模式,也记录下代理模式的实现Demo. 比如现在有一个场景是:客户想要增加一个新的功能,...

勤奋的蚂蚁
昨天
0
0
ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
昨天
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
昨天
0
0
合格前端第十二弹-TypeScript + 大型项目实战

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部