javaweb-servlet

javaweb三大组件之一servlet

一、什么是servlet
servlet是javaweb三大组件之一,负责处理请求与发送响应,servlet本质上是一种接口。那么它是如何工作的呢?它是如何工作的?基于计算机和网络通讯(主要是http协议)构建网络应用的。
二、它和tomcat的关系
tomcat是一个存放servlet/jsp的容器。你可以随便谷歌一个servlet的hello world教程,里面都会让你写一个servlet,相信我,你从来不会在servlet中写什么监听8080端口的代码,servlet不会直接和客户端打交道!

那请求怎么来到servlet呢?答案是servlet容器,比如我们最常用的tomcat,同样,你可以随便谷歌一个servlet的hello world教程,里面肯定会让你把servlet部署到一个容器中,不然你的servlet压根不会起作用。

tomcat才是与客户端直接打交道的家伙,他监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。
在这里插入图片描述
三、编写servlet

1.通过xml文件配置
 1、创建一个MyServlet继承HttpServlet,重写doGet和doPost方法,也就是看请求的方式是get还是post,然后用不同的处理方式来处理请求,
在这里插入图片描述

2、在web.xml中配置MyServlet,为什么需要配置?让浏览器发出的请求知道到达哪个servlet,也就是让tomcat将封装好的request找到对应的servlet让其使用。
在这里插入图片描述在这里插入图片描述

按照步骤,首先浏览器通过http://localhost:8080/test01/MyServlet来找到web.xml中的url-pattern,这就是第一步,匹配到了url-pattern后,就会找到第二步servlet的名字MyServlet,知道了名字,就可以通过servlet-name找到第三步,到了第三步,也就能够知道servlet的位置了。然后到其中找到对应的处理方式进行处理。

3、实验,验证上面配置成功。
3.2通过注解来配置servlet
/**
11 * 注解WebServlet用来描述一个Servlet
12 * 属性name描述Servlet的名字,可选
13 * 属性urlPatterns定义访问的URL,或者使用属性value定义访问的URL.(定义访问的URL是必选属性)
14 /
15 @WebServlet(name=“Servlet3Demo”,urlPatterns="/Servlet3Demo")
16 public class Servlet3Demo extends HttpServlet {
17
18 public void doGet(HttpServletRequest request, HttpServletResponse response)
19 throws ServletException, IOException {
20 response.getWriter().write(“Hello Servlet3.0”);
21 }
22
23 public void doPost(HttpServletRequest request, HttpServletResponse response)
24 throws ServletException, IOException {
25 this.doGet(request, response);
26 }
27 }
28
29 /

30 * 完成了一个使用注解描述的Servlet程序开发。
31   使用@WebServlet将一个继承于javax.servlet.http.HttpServlet的类定义为Servlet组件。
32   @WebServlet有很多的属性:
33   1、asyncSupported: 声明Servlet是否支持异步操作模式。
34   2、description:   Servlet的描述。
35   3、displayName: Servlet的显示名称。
36   4、initParams: Servlet的init参数。
37   5、name:     Servlet的名称。
38   6、urlPatterns:   Servlet的访问URL。
39   7、value:    Servlet的访问URL。
40   Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。
41   像上面的Servlet3Demo可以描述成@WebServlet(name=“Servlet3Demo”,value="/Servlet3Demo")。
42   也定义多个URL访问:
43   如@WebServlet(name=“Servlet3Demo”,urlPatterns={"/Servlet3Demo","/Servlet3Demo2"})
44   或者@WebServlet(name=“AnnotationServlet”,value={"/Servlet3Demo","/Servlet3Demo2"})
45 *
46 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值