servlets简介

作者: Jeff_9021 | 来源:发表于2020-03-20 10:58 被阅读0次

    关键词:servlets是什么? servlets能干什么? servlets处理用户请求?

    一、是什么?

    servlet是MW, 有4个JAVA包:

    javax.servlet

    javax.servlet.http

    javax.servlet.annotation(including Servlet, Filter,Listener)

    javax.servlet.descriptor

    二、能干什么?

    1.

    浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的Servlet进行处理,Servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理HTTP请求。常见的方法有doGet(),doPost()等。Web容器中包含了多个Servlet,特定的HTTP请求该由哪一个Servlet来处理是由Web容器中的web.xml来决定的。

    作者:杨宇翔

    链接:https://www.zhihu.com/question/21416727/answer/28555855

    来源:知乎

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    2.

    Servlet本质就是javax.servlet包下的一个接口,广义上来说包含其子接口与实现类,像我们自己写的什么BaseServlet,LoginServlet;SpringMVC的Dispatcherservlet;Tomcat的HttpServlet都是Servlet。

    工作原理就是反射+回调。目前所有的MVC框架的Controller基本都是这么个模式。

    Servlet的执行是其容器如Tomcat通过web.xml的配置反射出Servlet对象后回调其service方法。

    作者:戴帽子的狗

    链接:https://www.zhihu.com/question/21416727/answer/167610518

    来源:知乎

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    3.

    web服务器习惯处理静态页面,所以需要一个程序来帮忙处理动态请求(如当前时间)。Web服务器程序会将动态请求转发给帮助程序,帮助程序处理后,返回处理后的静态结果给web服务器程序。这样就避免了web服务器程序处理动态页面。Servlet的本质是一个帮助程序。

    作者:温学良

    链接:https://www.zhihu.com/question/21416727/answer/82511153

    来源:知乎

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    自我补充:JSP与Servlet

    JSP本质上就是Servlet,Web服务器把每个被访问的JSP文件先翻译成对应的Servlet,然后再编译运行。

    servlet是用来做Web开发的,做为控制层来处理用户的请求信息的。Servlet是BS开发的基础,了解了Servlet,今后对你学习,JSP,以及后面的Struts2框架都有很大的帮助。正常工作 时,Servlet使用并不多,都是使用Struts2来代替Servlet完成的功能的。

    你可以这样的理解,当你点击一个网页上的链接时,都会像服务器提交一个请求,这个请求分为两种,一种是post请求,一种是get请求。而对应的Servlet处理请求中,也有一个doget()和dopost()方法。Servlet处理完结果后,会往不同的作用域中放处理完的信息,返回到网页显示。

    三、处理请求

    针对 Servlet 的每次请求,Web 服务器在调用 service() 方法之前,都会创建 HttpServletRequest 和 HttpServletResponse 对象。其中,HttpServletRequest 对象用于封装 HTTP 请求消息,简称 request 对象。HttpServletResponse 对象用于封装 HTTP 响应消息,简称 response 对象。浏览器访问 Servlet 的交互过程如图 1 所示。

    图 1  浏览器访问Servlet过程

    在图 1 中,首先浏览器向 Web 服务器发送了一个 HTTP 请求,Web 服务器根据收到的请求,会先创建一个 HttpServletRequest 和 HttpServletResponse 对象,然后再调用相应的 Servlet 程序。

    在 Servlet 程序运行时,它首先会从 HttpServletRequest 对象中读取数据信息,然后通过 service() 方法处理请求消息,并将处理后的响应数据写入到 HttpServletResponse 对象中。最后,Web 服务器会从 HttpServletResponse 对象中读取到响应数据,并发送给浏览器。

    需要注意的是,在 Web 服务器运行阶段,每个 Servlet 都只会创建一个实例对象,针对每次 HTTP 请求,Web 服务器都会调用所请求 Servlet 实例的 service(HttpServletRequest request,HttpServletResponse response)方法,并重新创建一个 request 对象和一个 response 对象。

    相关文章

      网友评论

        本文标题:servlets简介

        本文链接:https://www.haomeiwen.com/subject/tgndyhtx.html