浅谈Servlet

JavaWeb

Javaweb应用是由一组servlet、HTML 页面、类、以及其他可以被绑定的资源构成,它可以在各种供应商提供的实现Servlet规范的Servlet容器中运行。
一个JavaWeb项目的运行流程如下:
在这里插入图片描述
其中就涉及到了Servlet容器和Servlet,下面分别介绍一下Servlet容器和Servlet。

Servlet容器

Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理他们的共享数据,也称为Javaweb应用容器。
我们开发常用到的Servlet容器是Tomcat。
Tomcat是一个免费的开放源代码的Servlet容器。

Servlet

Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应”的模式。
Servlet可以完成如下功能:

1.创建并返回基于客户请求的动态HTML页面

2.创建可嵌入到现有HTML页面的部分HTML页面

3.与其他服务器资源进行通信
Servlet本质是一个类,是运行在服务器上的java类。Servlet需要在web.xml中进行配置和映射

 <!--配置和映射Servlet-->
  <servlet>
  	<!-- Servlet注册的名字 -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--Servlet全类名-->
  	<servlet-class>com.ouc.javaweb.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<!-- 需要和某一个Servlet节点的servlet-name子节点的文本节点一致 -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--具体访问路径,'/'代表当前路径的根目录-->
  	<url-pattern>/hello</url-pattern>
  </servlet-mapping>

同一个Servlet可以被映射到多个URL上,即一个servlet可以由多个servlet-mapping与之匹配。

<!--配置和映射Servlet-->
  <servlet>
  	<!-- Servlet注册的名字 -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--Servlet全类名-->
  	<servlet-class>com.ouc.javaweb.HelloServlet</servlet-class>
  	<!--可以指定Servlet被创建的时机-->
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<!-- 需要和某一个Servlet节点的servlet-name子节点的文本节点一致 -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--具体访问路径,'/'代表当前路径的根目录-->
  	<url-pattern>/hello</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  	<!-- 需要和某一个Servlet节点的servlet-name子节点的文本节点一致 -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--具体访问路径,'/'代表当前路径的根目录-->
  	<url-pattern>/hello2</url-pattern>
  </servlet-mapping>

映射路径:

在Servlet映射到的URL中也可以使用*通配符,但是只能以两种固定的格式:

一种格式是“*.扩展名”,另一种是"/ *",但是既带/又带扩展名的不合法。

 <servlet-mapping>
  	<servlet-name>helloServlet</servlet-name>
  	<url-pattern>/*</url-pattern>
  </servlet-mapping>
<servlet-mapping>
  	<servlet-name>helloServlet</servlet-name>
  	<url-pattern>*.html</url-pattern>
  </servlet-mapping>

Servlet生命周期方法

Servlet生命周期方法都是由Servlet容器负责调用的。
(1)init方法:只被调用一次,创建好实例后,立即被调用,用于初始化当前Servlet
(2)service方法:被多次调用,每次请求都会调用service方法,实际用于响应请求的。
(3)destroy:只调用一次,在当前Servlet所在的web应用被卸载前调用,用于释放当前Servlet所占用的资源。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值