Servlet为根接口,里面有5个方法,init() servlet初始化,将ServletConfig作为参数传入,service() 响应请求,destroy() 销毁servlet,getServletConfig() 获得servlet的配置信息,如初始化参数和启动参数,getServletInfo() 获得servlet的信息,如作者,版本,版权等。

 
ServletConfig接口:可以获得servlet的名字,上下文,初始化参数。
 
GenericServlet抽象类,实现了Servlet,ServletConfig接口,因此具有上述的所有方法,同时还添加了log的功能。
 
HttpServlet继承自GenericServlet,也具有上述所有方法,但HttpServlet是针对Http协议实现的servlet。任何自定义Servlet
都要继承自HttpServlet。HttpServlet定义了7种处理请求的方法,分别是doGet(),doPost(),doPut(),doDelete(),doHead(),doOptions(),doTrace()。
 
当一个客户端发送一个http请求时,Tomcat容器会将请求的信息封装成一个HttpServletRequest对象,然后将该对象作为参数传入service()方法中,service()方法中动态判断选择何种方法处理请求,处理完成之后,将信息封装到HttpServletResponse对象中,然后回调到客户端。
 
Tomcat使用类加载器加载Servlet,加载的时机是:Servlet的加载和实例化是发生在第一次请求Servlet的时候。如果在web.xml文件中的Servlet下面加上<load-on-startup>1</load-on-startup>这一句配置,Servlet的加载和实例化就发生在容器启动的时候。
------------------------------------------------------------------------------------------------------------------------------------------
HttpServletRequest接口,继承自ServletRequest接口。ServletRequst接口中有getAttribute()返回的是Object,setAttribute(String name, Object o),getAttributeNames(),
getCharacterEncoding (),setCharacterEncoding(),getContentType(), getParameter()返回的是String,getParameterNames(),getParameterMap() 获取所有的参数Entry<Key,value>,getProtocol(),getServerName(),getServerPort(),getReader(),getRemoteAddr 获得客户端地址
getRequestDispatcher ()获得RequestDispatcher对象
HttpServletRequest 同时还定义了BASIC_AUTH,FORM_AUTH,CLIENT_CERT_AUTH,DIGEST_AUTH
还有getCookies(),getContextPath(),getRequestURI()获得请求的URI,getServletPath (),getSession()
 
 
HttpServletResponse接口,继承自ServletResponse接口。ServletResponse接口中有getCharacterEncoding(),getWriter()返回一个PrintWriter对象 setCharacterEncoding()等方法。
HttpServletResponse接口同时还定义了addCookie(Cookie cookie)添加一个cookie对象,发送到客户端
sendError (),sendRedirect(), 以及SC_NOT_FOUND 404错误,SC_INTERNAL_SERVER_ERROR 500内部服务器错误等。
-------------------------------------------------------------------------------------------------------------------------------------
Cookie类:一个Cookie就是一个Entry(<name,value>).由服务器端创建,Cookie cookie=new Cookie(String s1,String s2);
response.addCookie();将Cookie添加到response对象中,然后返回到客户端并且保存在客户端。当以后每次再访问服务器端的时候,任何request对象的头部都带有cookie的信息,可以通过Cookie[] cookies=request.getCookies();获取到所有的cookie。此外,还可以设置Cookie的过期时间,默认情况下是当关闭浏览器时Cookie就过期了,cookie.sexMaxAge(3600)可以设置经过多久之后Cookie才过期。
 
HttpSession接口:每一个浏览器访问服务器,服务器都会创建一个Session;当另外一个浏览器访问服务器时,服务器又会创建另一个Session。服务器将sessionID保存到cookie中,然后返回到客户端。之后客户端每次访问服务器端时,都会将
sessionID带回到服务器端。在服务器端通过代码验证,如果sessionID 存在,则运行继续访问,否则返回登陆页面。
 
 
 
 
 
 
 
 
                                    

Web Servlet的体系架构的更多相关文章

  1. Web服务的体系架构

    Web简介: Web是WWW(World Wide Web)的简称,又称为万维网,是建立在客户机/服务器上的,以HTML语言和HTML协议为基础,提供面向Internet服务的,有一致用户界面的一种信 ...

  2. 、web前端的这么知识应该是怎样的一个知识体系架构?

    .web前端的这么知识应该是怎样的一个知识体系架构?之前我以为可以以W3C为纲要,把W3C的东西学会了就够了.后来发现我错了,W3C还不全面. 真正全面的覆盖了web前端知识体系的东西是——浏览器内核 ...

  3. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  4. tomacat服务器上web资源访问流程、web应用打成war包发布、Context的reloadable属性、tomacat体系架构

    一.web资源访问流程 二.web应用打成war包发布到服务器 好处:打成war包发布到服务器,那么服务器会自动把它拆解成文件夹 jar命令是java自带的一个命令,如果之前配置过Java编译环境就可 ...

  5. WebLogic集群体系架构

    WebLogic Server集群概述  WebLogic Server 群集由多个 WebLogic Server 服务器实例组成,这些服务器实例同时运行并一起工作以提高可缩放性和可靠性.对于客户端 ...

  6. SaaS系列介绍之十三: SaaS系统体系架构

    1 系统体系架构设计 软件开发中系统体系架构决定了一个系统稳定性.健壮性.可扩展性.兼容性和可用性,它是系统的灵魂.体系架构是架构师所关注的核心.良好的体系架构是系统成功的开端,否则,再好的代码与设计 ...

  7. (转)关于Tomcat的点点滴滴(体系架构、处理http请求的过程、安装和配置、目录结构、设置压缩和对中文文件名的支持、以及Catalina这个名字的由来……等)

    转自:http://itfish.net/article/41668.html   总结Tomcat的体系架构.处理http请求的过程.安装和配置.目录结构.设置压缩和对中文文件名的支持.以及Cata ...

  8. 关于Tomcat的点点滴滴(体系架构、处理http请求的过程、安装和配置、文件夹结构、设置压缩和对中文文件名称的支持、以及Catalina这个名字的由来……等)

    总结Tomcat的体系架构.处理http请求的过程.安装和配置.文件夹结构.设置压缩和对中文文件名称的支持.以及Catalina这个名字的由来--等. Tomcat和JVM: 一个Tomcat仅仅会启 ...

  9. JavaEE体系架构

    转载于:https://www.cnblogs.com/reverseAC/p/8512379.html JavaEE知识体系结构图 JavaEE体系结构图: 认识JavaEE完整体系架构(转载):作 ...

随机推荐

  1. CSS代码重构与优化

    CSS代码重构的基本方法 前面说到了CSS代码重构的目的,现在我们来说说一些如何达到这些目的的一些基本方法,这些方法都是易于理解,容易实施的一些手段,大家平时可能也不知不觉地在使用它. 提高CSS性能 ...

  2. Matplotlib植入PyQt5 + QT5的UI呈现

    实现matplotlib图形通过PyQt5+Qt5在GUI中呈现步骤: 第一步,通过matplotlib.backends.backend_qt5agg类来连接PyQt5: import matplo ...

  3. 阿里云CentOS6.8云服务器配置安全组规则

    前提:已经购买阿里云服务器,域名解析也完成了 需要对安全组规则进行配置,才能进行访问 1.进入阿里云首页https://www.aliyun.com/,如下图 2.进入控制台首页,如下图 3.在上图页 ...

  4. JSP小例子——实现用户登录小例子(不涉及DB操作)

    实现用户登录小例子用户名和密码都为"admin",登陆成功使用服务器内部转发到login_success.jsp页面,并且提示登陆成功的用户名.如果登陆失败则请求重定向到login ...

  5. 输入一个long类型的整数,输出一个以金融格式表示的字符串

    package test; public class Test { public static void main(String[] args) { System.out.println(yuan(1 ...

  6. 在 Linux 上管理加密密钥的最佳体验

    导读 存储 SSH 的加密秘钥和记住密码一直是一个让人头疼的问题.但是不幸的是,在当前这个充满了恶意黑客和攻击的世界中,基本的安全预防是必不可少的.对于许多普通用户来说,大多数人只能是记住密码,也可能 ...

  7. IOS 设置ios中DatePicker的日期为中文格式

    设置ios中DatePicker的日期为中文格式 1.在模拟器中的“设置”-“通用”-“多语言环境”-“语言”设置为“简体中文”, 2.“区域格式”设置为“中国”.

  8. 170327、Java微信支付中的扫码支付

    微信支付现在已经变得越来越流行了,随之也出现了很多以可以快速接入微信支付为噱头的产品,不过方便之余也使得我们做东西慢慢依赖第三方,丧失了独立思考的能力,这次打算分享下我之前开发过的微信支付. 一 H5 ...

  9. MSSQL移除字符串两边的指定字符

    移除字符串左边的字符: CREATE FUNCTION [dbo].[RemoveLeftChar] ( @Expression varchar(max), @char varchar(4))RETU ...

  10. Spark源码分析 – DAGScheduler

    DAGScheduler的架构其实非常简单, 1. eventQueue, 所有需要DAGScheduler处理的事情都需要往eventQueue中发送event 2. eventLoop Threa ...