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. layui多选框

    多选下拉框:http://sun.faysunshine.com/layui/formSelects-v4/example/example_v4.html 1.下载formSelects-v4.1 2 ...

  2. Hibernate_day01--课程安排_Hibernate概述_Hibernate入门

    Hibernate_day01 Hibernate课程安排 今天内容介绍 WEB内容回顾 JavaEE三层结构 MVC思想 Hibernate概述 什么是框架 什么是hibernate框架(重点) 什 ...

  3. 剑指 offer set 19 翻转单词顺序 && 字符串左旋

    题目 1. 翻转单词 student. a am I 转换成 I am a student. 2. 字符串左旋 abba 1 转成 bbaa 总结 1. 先对每个单词旋转, 再整齐旋转 2. 先翻转一 ...

  4. 1-1、superset开发环境搭建

    在对superset进行二次开发的过程中,往往需要搭建本地开发环境,修改后立即看到效果,下面我们就讲下开发环境的搭建. 1.打开PyCharm,在菜单栏上执行VCS-->Checkout fro ...

  5. iOS 7 SDK: 如何使用后台获取(Background Fetch)

    本文转载至 http://www.cocoachina.com/applenews/devnews/2013/1114/7350.html 本文主要教你如何使用iOS 7 SDK多任务处理API--B ...

  6. Java中关于枚举的7种用法

    1.定义常量: public enum Color { RED,ORANGE,YELLOW,GREEN,INDIGO,BLUE,PURPLE } 2.用于switch: enum Color { RE ...

  7. 这些孩子在 Ubuntu 的 Linux 终端下玩耍

    导读 我发现了一个孩子们在他们的计算机教室里玩得很开心的视频.我不知道他们在哪里,但我猜测是在印度尼西亚或者马来西亚.视频请自行搭梯子: https://youtu.be/z8taQPomp0Y 在L ...

  8. Caused by: java.lang.ClassNotFoundException[android的终极解决错误]

    from:http://blog.csdn.net/changemyself/article/details/7861525 08-13 18:29:22.924: E/AndroidRuntime( ...

  9. POI导出EXCEL经典实现(转载)

    1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...

  10. [转发]CentOS7安装MySQL

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1 下载并安装MySQL官方的 Yum Re ...