`
wfzhanga
  • 浏览: 70534 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Servlet专题

阅读更多
1. Servlet 生命周期?
从Tomcat处理用户请求,我们可以清晰的看到容器Servlet的生命周期管理过程:
  1、客户发出请求—>Web 服务器转发到Web容器Tomcat;
  2、Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;
  3、从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程;
  4、Tomcat调用Servlet的service()方法,根据请求参数的不同调用doGet()或者doPost()方法;
  5、假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
  6、Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
  从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);调用destroy()方法(对应6步)。
有时候希望在servlet首次载入时,执行复杂的初始化任务,但并不想每个请求都重复这些任务的时候,用init()方法他在servlet初次创建时被调用,之后处理每个用户的请求时,则不在调用这个方法。
2) servlet中 service dopost doget方法之间的区别?
1. get和post这是http协议的两种方法,另外还有head, delete等
2. 这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。
3. 在servlet开发中,以doGet()和doPost()分别处理get和post方法。
另外还有一个doService(), 它是一个调度方法,当一个请求发生时,首先执行doService(),不管是get还是post。在 HttpServlet这个基类中实现了一个角度,首先判断是请求时get还是post,如果是get就调用doGet(), 如果是post就调用 doPost()。

 

3) filter生命周期:
web应用发布完成之后,在request访问web资源之前,容器必须定位需要应用到该资源上的filter列表。容器需要确保实例化列表中的每个filter并调用它的init方法。如不能正确执行,filter可以抛出异常。
  配置描述文件中每个filter的声明在每个虚拟机中仅仅只有一个实例。容器提供filter配置秘书中声明的config对象, 它包含了该web应用的ServletContext引用,和filter初始参数。
  当容器接收到request,将取得列表中的第一个filter实例,并调用它的doFilter方法。将传入ServletRequest,ServletResponse和filterchain的引用。
  doFilter方法遵循以下模式:
  1.该方法检测request的头信息
  2.可能会用一个定制的ServletRequest或HttpServletRequest包装request对象。
  3.可能会用一个定制的ServletResponse或HttpServletResponse包装response对象。
  4.filter可以调用filter链中的下一个入口,可能是一个filter,也可能是目的web资源。
  5.调用链中的下一个filter之后,filter可以检测响应头信息。
  6.处理过程中,filter可能抛出异常。如果在doFilter中抛出UnavailableException,容器不要继续filter链的处理,如非永久性异 常,它可以选择在稍晚的时候重新执行整个filter链。
 
4) Struts2中过滤器,拦截器他们之间有什么区别?
1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。
2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。
 
5) java反射机制 写道
在struts,spring等框架中配置类的实例化等...
 

 

 

 

 

 

分享到:
评论

相关推荐

    源码:阎宏设计模式光盘

    com.javapatterns.servlet 专题:Servlet技术中的模式 com.javapatterns.simplefactory 简单工厂模式 com.javapatterns.singleton 单态模式 com.javapatterns.singleton.mxrecord 专题:单例模式与MX记录 ...

    北京动力节点-专题08-Servlet3.0特性.pdf

    Servlet3.0是JavaEE6.0规范的一部分,它对之前的Servlet2.5进行了扩展,引入了许多新特性,使得JavaWeb开发更为灵活和便捷。在Servlet3.0中,开发者可以不再依赖传统的web.xml配置文件,转而使用注解进行组件...

    android -servlet-mysql(json)登陆传值

    本技术专题将深入探讨如何在Android客户端通过Servlet与远程MySQL数据库交互,利用JSON进行数据传输,实现用户登录功能。以下是详细的知识点解析: 1. **Android客户端**: - **网络请求库**:通常我们会使用像...

    (2021-2022年)专题资料完美版基于Jspservlet的校园新闻管理与发布系统开题报告答辩.ppt

    标题提及的"基于Jsp-servlet的校园新闻管理与发布系统"是一个教育精品资料的主题,主要探讨了如何利用Java的Web开发技术构建一个用于校园新闻管理和发布的应用系统。这个系统旨在利用网络作为重要的新闻媒介,展示...

    Tomcat面试专题.zip

    【标题】:Tomcat面试专题 【描述】:本专题主要聚焦在Java筑基面试中与Tomcat服务器相关的知识点,旨在帮助求职者深入理解并掌握Web应用服务器的基础知识,特别是Tomcat的使用、配置和优化。尽管描述提到了MySQL,...

    JSP 文件应用专题

    **JSP(Java Server Pages)文件应用专题** JSP(Java Server Pages)是Java平台上的一个服务器端脚本语言,用于创建动态网页。它结合了HTML、CSS、JavaScript等前端技术与Java语言的后端处理能力,使得开发者可以...

    Java专题学习笔记

    Java专题学习笔记主要涵盖了Java语言的核心概念、进阶特性以及实际应用中的问题解析。这份笔记是结合了讲师的讲解和个人的整理,旨在为热爱Java编程的朋友们提供丰富的学习资源。以下将详细介绍其中可能包含的知识点...

    专题之java上传图片.pdf

    在本专题中,Servlet将处理文件上传的请求,包括解析请求中的文件数据和将文件保存到服务器的文件系统中。 ***mons FileUpload组件:Apache Commons FileUpload是一个处理文件上传的Java库,可以帮助开发者简化从...

    tomcat的面试专题

    《Tomcat面试专题》 在IT行业中,Java Web应用服务器Tomcat因其轻量级、开源、易用的特点,被广泛应用于各种规模的企业项目中。因此,对于求职者来说,掌握Tomcat的相关知识是面试中必不可少的一环。本专题将深入...

    架构师面试题系列之Spring Boot面试专题及答案(33题).docx

    标题:"架构师面试题系列之 Spring Boot 面试专题及答案(33题)" 描述:"架构师面试题系列之 Spring Boot 面试专题及答案" 标签:"SpringBoot" 部分内容: 1. Spring Boot 是什么? Spring Boot 是一个用于简化 ...

    Struts技术专题

    Struts技术专题主要聚焦于Java企业级Web应用开发框架Struts的详解,它是一个开源的解决方案,旨在简化构建此类应用程序的复杂性。Struts作为Jakarta项目的一部分,由框架类、辅助类和JSP标记库构成,遵循Model 2设计...

    SpringMVC面试专题1

    【SpringMVC面试专题1】 1. **SpringMVC是什么?** SpringMVC是Spring框架的一个核心模块,它是一个基于Model-View-Controller(MVC)架构的Web应用程序开发框架。SpringMVC允许开发者无需编写过多的Servlet代码,...

    北京动力节点-专题05-监听器.pdf

    监听器是JavaWeb开发中的一个重要概念,它是一种设计模式的具体实现,主要用于实现Web组件(如Servlet、JSP等)的生命周期事件监听。在本文中,我们将深入了解监听器的概念、分类以及如何在JavaWeb开发中应用监听器...

    专题资料(2021-2022年)javaeasyui项目演练.docx

    本专题资料主要针对2021-2022年的 Java EasyUI 项目演练,涵盖了从布局设计到数据库操作的全过程。 1. **EasyUI 布局设计** EasyUI 提供了灵活的布局模式,如 `index` 页面中的上下左右中布局。页面的核心部分是 `...

    JS请求servlet功能示例

    文章提到了几个相关的专题,如《JavaScript中ajax操作技巧总结》,这些专题可能包含了如何优化AJAX请求(例如使用JSON格式而非XML),以及在处理响应时的错误处理和调试技巧。关于AJAX数据的处理,也会包含如何遍历...

Global site tag (gtag.js) - Google Analytics