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. Struts2_day03--向值栈放数据

    向值栈放数据 1 向值栈放数据多种方式 第一种 获取值栈对象,调用值栈对象里面的 set 方法 第二种 获取值栈对象,调用值栈对象里面的  push方法 第三种 在action定义变量,生成变量的ge ...

  2. 在线制作logo

    logoko:http://www.logoko.com.cn/ markmarker:http://emblemmatic.org/markmaker/#/ logomaker:https://lo ...

  3. SensorManager

    光照传感器 Android 中每个传感器的用法其实都比较类似,真的可以说是一通百通了.首先第一步要获取到 SensorManager 的实例 SensorManager senserManager = ...

  4. M451例程讲解之按键

    /**************************************************************************//** * @file main.c * @ve ...

  5. 1853: [Scoi2010]幸运数字[容斥原理]

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 2405  Solved: 887[Submit][Status] ...

  6. 【黑金原创教程】 FPGA那些事儿 SignalTap II 调试技巧

    简介工具篇系列的第三本教程,讲述各种与SignalTap II 有关的调试技巧. 目录[黑金原创教程] FPGA那些事儿<工具篇III>:File01 - 上线调试与下线调试[黑金原创教程 ...

  7. Objective-C代码学习大纲(6)

    2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...

  8. Java--运算符的优先级表

    Java运算符的优先级表:

  9. Java Filter过滤xss注入非法参数的方法

    http://blog.csdn.NET/feng_an_qi/article/details/45666813 Java Filter过滤xss注入非法参数的方法 web.xml: <filt ...

  10. mongo 统计数据磁盘消耗

    repl_test:PRIMARY> show dbsadmin 0.000GBdirect_vote_resource 16.474GBlocal 14.860GBpersonas 30.77 ...