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. jenkins发布docker到mesos

    1.前提是装好git.SSH.maven插件 2.jenkins新建一个项目,配好git拉取代码.maven编译构建(gradle构建也行,这不重要) 3.SSH Server,填写需要传输的jar文 ...

  2. LAMP环境搭建博客

    背景: 公司要用到lamp环境,让我装,我就开始着手找资料,一般分为源码装和yum装,源码装很容易出错,所以我选择了yum装,. 服务器:aliyun服务器  centos6.8系统 按照第一个安装完 ...

  3. 从 Microsoft Dynamics CRM 4.0 server迁移到 Microsoft Dynamics CRM 2013 Server

    不能就地升级早于 Microsoft Dynamics CRM Server 2011 的版本号,比方 Microsoft Dynamics CRM 4.0 server.可是,能够在升级过程中使用 ...

  4. Hadoop日志分析系统启动脚本

    Hadoop日志分析系统启动脚本 #!/bin/bash #Flume日志数据的根文件夹 root_path=/flume #Mapreduce处理后的数据文件夹 process_path=/proc ...

  5. THINKPHP5操作数据库代码示例

    数据库表结构 #表结构 CREATE TABLE `qrcode_file` ( `id` ) NOT NULL AUTO_INCREMENT, `active` ) ' COMMENT '是否有效' ...

  6. 工作中php处理HTTP请求的缺陷总结

    之前遇到过php在处理一部分业务的时候总是感觉有短板,有些东西总是不能随人心意.比如执行时间问题,一个进程需要读取多条数据放入数组循环执行处理流程,就会很慢,容易超时,这个超时问题 可以用php设置s ...

  7. onTouch事件分发

    事件机制 我们知道view中有onTouch,onClick, 1.并且onTouch优先于onClick执行, 2.onTouch有返回值,为true时onClick并不再执行了 因为一切VIew都 ...

  8. 第4章 Vim编辑器与Shell命令脚本

    章节简述: 本章节将教给您如何使用Vim编辑器来编写文档.配置主机名称.网卡参数以及yum仓库 ,熟练使用各个模式和命令快捷键. 我们可以通过Vim编辑器将Linux命令放入合适的逻辑测试语句(if. ...

  9. 【BZOJ1486】[HNOI2009]最小圈 分数规划

    [BZOJ1486][HNOI2009]最小圈 Description Input Output Sample Input 4 5 1 2 5 2 3 5 3 1 5 2 4 3 4 1 3 Samp ...

  10. sssssss

    1dispatcherServlet—拦截到spring mvc的请求 2dispatchServlet调用HandlerMapping( DefaultAnnoationHandlerMapping ...