前言:本文很多地方会以小白的角度来思考很多看似“简单”的问题。适用于对Servlet 有简单了解的人。本文是自己学习的过程,学习的体验,也是在本人的能力范围内,给大家尽量带来由浅入深的文章
其实如果给你推荐或者搜索了这个问题,那就默认你懂一点了 Servlet。
用途:
【在容器的帮助下】:使用servlet可以接收到用户发送的Http请求,在servlet通常称为 HttpServletRequest。Servlet接收到之后
【处理用户的请求】:接收到请求之后,可以根据用户的请求进行处理,
【返回数据】:比如说用户要余额,那么接收到该请求后,就把数据打包成一个HTTP报文,再通过容器返回,返回的数据称为响应 HttpServletResponse,单称为Response也行,知其意思便可。
上面即是功能,也是Servlet处理流程。
【更多基础知识】:
当输入一个网址,会调用 get请求发送到服务器,服务器反应后找到页面代码,包装到响应体中,然后返回给用户。
.容器有很多种,在学习的时候常用tomcat,他是管理Servlet的,负责他们的生、初始化、死,他们初始化之后,就可以返回,对应功能就可以接收响应了。 容器负责传递请求和响应,接收到之后,传给对应servlet,然后返回响应时也经过容器返回给用户
● 通信支持
无需我们使用ServerSocket和Socket来建立客户端和服务端的联系,容器会自己处理,包括建立连接,监听端口,IO流,我们可以专注于业务处理
生命周期管理,容器管理着 servlet的加载初始化和销毁,并且能够使得实例能够销毁
多线程支持:一个客户端创建一个线程,运行完就销毁
…
Servlet作为我们首先接触到的一个接口,还是算比较基础的技术,但是其作用是非常大的,需要认真学。
【出现的原因】:一个新技术必然是要弥补原有技术的不足而产生的。原先静态的页面,是无法和服务器交互的,每个人看见的页面都是不变的,其页面都只是从服务器传来的文件,不像你现在,== 你可以在看我的文章的同时,给我点赞,粉我,收藏该文章 ==,收藏之后,你能经常看见我写的、推荐的文章,这就是“针对于你的”页面。
【更多用处】:通过请求,可以返回一个HTML页面,可以返回一个图片(然后浏览器加载),可以返回一个文章, pdf,返回各种文件。这其实就和我们的网页大差不差了,思考一下自己平常使用的都是什么功能,也无非是登录,然后显示页面,当你点击的时候,显示另一个页面,获取文件,查看图片。
<servlet>
<servlet-name>Servlet1</servlet-name>
<servlet-class>com.example.ServletDemo</servlet-class>
<servlet>
<servlet-mapping>
<servlet-name>Servlet1</servlet-name>
<url-pattern>/servelt</url-pattern>
</servlet-mapping>
注:当用户要请求某个servlet,并不需要知道它的类名,只需要知道在xml文件中,对其配置的映射即可。所以说上面不仅定义了Servlet,还定义了其映射mapping
好不好用是在使用的时候,才能体会到的,当提及“方便”,“灵活性高”,你可能觉得会空。
下面提前讲两个知识点:
全局参数::很清楚,就是设置给所有的servlet的,假如说,你在开发一个广告后台,你最重要的一个信息是什么??那肯定是你的咨询电话,假如你有1个页面,或者是100个页面,这个电话都不应该不一样,应该是全局的,并且是容易修改的,全局参数就提供了你这样的帮助,
Servlet初始化参数::不同的Servlet有不同的需求,还是上面的例子,假如你的广告里面,有个功能是,相关企业,你也需要提供他们的电话号码,哎呀,只有这个功能(servlet)需要他们的电话电话号码,怎么办?
1.创建Servlet
2.声明一个map,显式声明电话号码和公司名
3.如果要修改,就需要找到这个Servlet,然后修改
<servlet>
<servlet-name>Servlet1</servlet-name>
<servlet-class>com.example.ServletDemo</servlet-class>
<init-param>
<param-name>phone</param-name>
<param-value>110</param>
</init-param>
</servlet>
【相关知识后面文章会讲】
生命周期
有的,在HttpServlet里面,还有doOptions,doHead,等等,但是不常用
目前,讲解的是基础的Servlet使用,如果你能创建一个 Servlet,那么你其实就已经能写一个最简单的网页了,==你的web之路始于脚下。 ==
【后续正在创作中】:
Servlet请求和响应详细解析
Servlet学习之HTTP篇
重定向与转发篇
监听者篇
会话篇