开发者社区> java3y> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】(下)

简介: Servlet其实就是一个遵循Servlet开发的java类。Serlvet是由服务器调用的,运行在服务器端。
+关注继续查看

Servlet的作用

Servlet带给我们最大的作用就是能够处理浏览器带来HTTP请求,并返回一个响应给浏览器,从而实现浏览器和服务器的交互


JAVAWEB目录结构

42.jpg

以上图说明:

  • bbs目录代表一个web应用
  • bbs目录下的html,jsp文件可以直接被浏览器访问
  • WEB-INF目录下的资源是不能直接被浏览器访问的
  • web.xml文件是web程序的主要配置文件
  • 所有的classes文件都放在classes目录下
  • jar文件放在lib目录下

实现Servlet接口编写Servlet程序

程序我都是由idea下写,首先要在idea上配置Tomcat,在我别的博文中有教程!

编写Servlet程序的步骤

  • 创建一个自定义类,实现Serlvet接口

43.jpg

  • 我们发现有5个方法需要重写,有init【初始化】,destroy【销毁】,service【服务】,ServletConfig【Servlet配置】,getServletInfo【Serlvet信息】。
  • 在此一看,发现service()方法是最有可能是写逻辑代码的地方。
  • 首先写一个hellword入门先
  • 调用ServletResponse对象的方法向浏览器输出HelloWorld

44.jpg

配置xml文件,光写了Servlet是不行的,Tomcat还要知道浏览器怎么访问这个Servlet。

45.jpg

访问自己写的Serlvet程序

46.jpg

Serlvet生命周期

  • 下面我们看看Servlet的生命周期

47.jpg

第一次访问Servlet,我们发现init()和service()都被调用了

48.jpg

第二次访问Servlet,service()被调用了

49.jpg

第三次访问Servlet,还是service()被调用了

50.jpg

当我们关闭Tomcat服务器的时候,destroy()被调用了!

51.jpg

Servlet生命周期可分为5个步骤

  1. 加载Servlet。当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例
  2. 初始化。当Servlet被实例化后,Tomcat会调用init()方法初始化这个对象
  3. 处理服务。当浏览器访问Servlet的时候,Servlet 会调用service()方法处理请求
  4. 销毁。当Tomcat关闭时或者检测到Servlet要从Tomcat删除的时候会自动调用destroy()方法,让该实例释放掉所占的资源。一个Servlet如果长时间不被使用的话,也会被Tomcat自动销毁
  5. 卸载。当Servlet调用完destroy()方法后,等待垃圾回收。如果有需要再次使用这个Servlet,会重新调用init()方法进行初始化操作
  • 简单总结:只要访问Servlet,service()就会被调用。init()只有第一次访问Servlet的时候才会被调用。

destroy()只有在Tomcat关闭的时候才会被调用。


继承HttpServlet编写Servlet程序

在上面我们实现Servlet接口,要实现5个方法。这样太麻烦了!而HttpServlet类已经实现了Servlet接口的所有方法,编写Servlet时,只需要继承HttpServlet,重写你需要的方法即可,并且它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大

  • 一般我们开发的时候,都是重写doGet()和doPost()方法的。对于idea而言,创建Servlet的时候已经帮你重写好了

52.jpg

如果文章有错的地方欢迎指正,大家互相交流。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大降薪|架构周报
本周架构视点:知网“哭穷”:赔不起 1200 亿;微信公众号文章留言显示 IP 属地;程序员延寿指南霸榜 GitHub;联想高层大规模降薪;网易云音乐起诉腾讯音乐;GitHub 弃用 io;ARM 安谋中国 430 多名员工联名签署公开信,反对软银夺权;Firefox:我们不会卖给亿万富翁
33 0
MAC编译OpenJDK8:clang: error: include path for libstdc++ headers not found(独家解决办法)
MAC编译OpenJDK8:clang: error: include path for libstdc++ headers not found(独家解决办法)
56 0
Fiori elements执行过程解析:When click go in table list, odata service is sent
Fiori elements执行过程解析:When click go in table list, odata service is sent
21 0
批处理+VBS+注册表实现开机自动启动EXE程序
原文:批处理+VBS+注册表实现开机自动启动EXE程序 批处理+VBS+注册表实现WINDOWS开机自动启动EXE程序 以下都是基于WINDOWS系统。 我们都知道当我们有想某个程序在开机时自动运行,只能有三个方式: 1、做成服务,然后对服务进行配置为自动启动(可以实现不进行用户登录完成); 2、做成驱动程序,随系统启动(可以实现不进行用户登录完成); 3、做成EXE程序,添加到开机启动项(必须得在用户登录情况下完成)。
1241 0
SQL Server 基础存储结构 B-tree和Heap特性
本文介绍SQL Server的基础存储结构之聚集表和堆表,及相应的访问方式
2944 0
《Servlet、JSP和Spring MVC初学指南》——1.3 编写基础的Servlet应用程序
其实,编写Servlet应用程序出奇简单。只需要创建一个目录结构,并把Servlet类放在某个目录下。本节将教你如何编写一个名为app01a的Servlet应用程序。最初,它会包含一个Servlet,即MyServlet,其效果是向用户发出一条问候。
1827 0
一起谈.NET技术,ASP.NET MVC 3 Beta新特性以及.Net开源的趋势----最新译文
  NuPack – .NET的开源软件包管理器   NuPack是一个开源的软件包管理器,它使你在项目中能够更加容易的查找、安装和使用.NET 库。它能够和所有的.NET 项目类型很好的一起工作(包括,没有任何限制的,ASP.NET Web Forms和ASP.NET MVC).   NuPack 使维护开源项目的开发者(例如, Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, RhinoMocks, Elmah, 等等) 能够去打包他们的库,并且使用一个在线的,可查找的gallery/catalog 来注册它们。
1021 0
DBCC SHRINKDATABASE xxxx was skipped because the file does not have enough free
假设你创建一个数据库时,指定其初始化大小(SIZE )非常大。例如,如下测试案例所示 USE [master] GO   CREATE DATABASE [TEST] ON  PRIMARY  ( NAME = N'TEST_Data', FILENAME = N'D:\SQL_DATA\TEST_Data.
1704 0
+关注
java3y
公众号:Java3y。文章导航:https://github.com/ZhongFuCheng3y
679
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载