zoukankan      html  css  js  c++  java
  • SpringMVC面试题:什么是Servlet?

    一、什么是servlet?

    servlet是一个Java编写的程序,此程序是基于http协议的,在服务器端(如Tomcat)运行的,是按照servlet规范编写的一个Java类。
    客户端发送请求至服务器端,服务器端将请求发送至servlet,servlet生成响应内容并将其传给服务器
    即,我们在浏览器点击链接和按钮产生的消息不是发送给servlet的,而是发送给web容器(如Tomcat、jetty)的,web容器接受消息后不知道怎么处理,转交给我们编写的servlet处理,那么web容器怎么和servlet交流呢,于是就有了servlet接口(因为接口是定义一种规范的良好表达形式)。我们只需要编写Java类符合servlet规范,那么就能被web容器识别,并被容器管理。
    Servlet = Server + Applet

    二、servlet的作用:

    处理客户端的请求并将其结果发送到客户端

    三、servlet的生命周期

    servlet的生命周期由servlet容器来控制,分为三个阶段:

    初始化阶段:

    1、servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。
    2、servlet容器创建一个servletConfig对象。servletConfig对象包含了servlet的初始化配置信息。
    3、servlet容器创建一个servlet对象。
    4、servlet容器调用servlet对象的init方法进行初始化。

    运行阶段:

    1、servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。
    2、然后调用service方法。并将这两个参数传递给service方法。service方法通过servletRequest对象获得请求的信息。并处理该请求。
    3、再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和servletResponse对象。不管这个请求时post提交的还是get提交的,这一种这个请求都会由service方法来处理。
    销毁阶段:
    当web应用被终止时,servlet容器会先调用servlet对象的destroy方法,然后在销毁servlet对象,同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中,释放servlet所占用的资源,如关闭数据库连接,关闭文件输入输出流等。

    四、servlet怎么处理一个请求?

    当用户从浏览器向服务器发起一个请求,通常会包含如下信息:http://hostname: port /contextpath/servletpath,hostname 和 port 是用来与服务器建立 TCP 连接,而后面的 URL 才是用来选择服务器中那个子容器服务用户的请求。那服务器是如何根据这个 URL 来达到正确的 Servlet 容器中的呢?
    Tomcat中这件事很容易解决,因为这种映射工作有专门的一个类来完成,这个类保存了Tomcat的container容器中所有子容器的信息。当 Request 进入 Container 容器之前,它要访问那个子容器这时就已经确定了。
    当用户发送一个请求到某个servlet的时候,servlet容器会创建一个servletRequest和servletResponse对象。在servletRequest对象中封装了用户的请求信息,然后servlet容器把servletRequest和servletResponse对象传递给用户所请求的servlet,servlet把处理好的结果卸载servletResponse中,然后servlet容器把响应结果传给用户。

    五、servlet和jsp的区别

    1、jsp经编译后就是servlet。
    2、jsp更擅长页面表现,servlet更擅长逻辑编辑
    3、jsp位于MVC设计模式的视图层,而servlet位于控制层

    六、servlet里的过滤器

    过滤器的作用

    1、任何系统或网站都要判断用户是否登录。
    2、网络聊天系统或论坛,功能是过滤非法文字
    3、统一解决编码

    怎么创建一个过滤器:

    1、生成一个普通的class类,实现Filter借口(javax.servlet.Filter)
    2、重写接口里面的三个方法:init,doFilter和destroy
    3、然后在web.xml配置过滤器

    servlet中的监听器

    对Request的监听,对session的监听,对application的监听

    七、参考

    SpringMVC 中文官网:http://www.springmvc.cn/

  • 相关阅读:
    zookeeper简介(二)
    zookeeper简介(一)
    消息队列及常见消息队列介绍
    使用IntelliJ IDEA 和 Maven创建Java Web项目
    Java NIO 缓冲区Buffer(二)缓冲区的创建
    Java NIO 缓冲区Buffer(一)基础学习
    Java NIO使用及原理之--选择器Seclector
    JAVA集合类汇总
    谈谈final、finally、 finalize有什么不同?
    查看SELinux状态:
  • 原文地址:https://www.cnblogs.com/nanfeng99/p/11225771.html
Copyright © 2011-2022 走看看