1 Servlet 简介
1 Servlet是sun公司提供的一门用于开发动态web资源的技术。用户若用Java技术开发一个动态web资源或者网页,需要完成以下2个步骤:
① 编写一个Java类,实现servlet接口
② 把开发好的Java类部署到web服务器中
2 Servlet - Java 小程序
① servlet 就是java程序(java 类)
② servlet 遵循servlet 开发规范
③ servlet是运行在服务器端
④ 功能强大,几乎可以完成网站所有的需求
⑤ 学习jsp的基础
3 Servlet 和 Tomcat 在网络中的位置
4 Servlet 快速入门案例
Servlet 开发有三种方式
① 实现servlet 接口
② 通过继承GenericServlet
③ 通过继承HttpServlet
① 实现servlet 接口
- 建立 web应用 TestWeb
- 在 TestWeb 下建立 WEB-INF/web.xml
- 在 WEB-INF 下建立 classes目录(servlet就要在这开发),建立lib目录
- 实现 Servlet接口来开发 Servelt 编写FirstServlet.java 类然后编译
1 import javax.servlet.*; 2 import javax.servlet.http.*; 3 4 public class FirstServlet implements Servlet 5 { 6 //该函数用于初始化Servlet,把Servlet加载到内存,整个Servlet生命周期只会被调用一次 7 public void init(ServletConfig config) throws ServletException 8 { 9 10 } 11 12 //获取ServletConfig对象 13 public ServletConfig getServletConfig() 14 { 15 return null; 16 } 17 18 //该函数是服务函数,业务逻辑在这个函数实现 19 public void service(ServletRequest request, ServletResponse response) 20 { 21 PrintWriter out = response.getWriter(); 22 23 out.println("Hello Servlet"+" "+ new java.util.Date()); 24 } 25 26 //返回Servlet配置信息 27 public String getServletInfo() 28 { 29 return null; 30 } 31 32 //destroy()方法只会被调用一次,在 Servlet 生命周期结束时被调用 33 public void destroy() 34 { 35 36 } 37 }
根据 Servlet 规范部署 Servlet,打开WEB-INF/web.xml 添加如下代码部署 FirstServlet:
1 <!--Deploys the servlet to here --> 2 <servlet> 3 <!-- 自己定义 --> 4 <servlet-name>FirstServlet</servlet-name> 5 <!--FirstServlet所在项目的全路径(非物理路径,而是以项目WEB-INF\classes为根目录开始计算) --> 6 <servlet-class>FirstServlet</servlet-class> 7 </servlet> 8 9 <servlet-mapping> 10 <!-- 与上面的servlet-name保持一致 --> 11 <servlet-name>FirstServlet</servlet-name> 12 <!-- 外部访问的url: 自己定义 --> 13 <url-pattern>/First</url-pattern> 14 </servlet-mapping> 15
重启Tomcat,浏览器访问FirstServlet,输入的地址为:http://localhost:8080/TestWeb/First,最后的First就是web.xml 里配置的,可以随意定义。
③ 继承HttpServlet
通过继承HttpServlet 开发 Servlet,需要重写 doGet,doPost方法。
首先编写一个Login.html 用于访问SecondServlet,Login.html必须放在 \LatinyWeb\WEB-INF下
<html> <body> <form action="/TestWeb/Second" method="post"> user:<input type="text" name="username"/> <input type="submit" value="login"/> </body> </html>
然后编写SecondServlet.java 类,并在 web.xml配置外部访问的 url。
1 public class SecondServlet extends HttpServlet 2 { 3 //在HttpServlet中,设计者对post与get提交分别处理 4 //doGet()与doPost()调用Servlet的service方法 5 protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException 6 { 7 res.getWriter().println("This is doGet method!"); 8 } 9 10 protected void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException 11 { 12 res.getWriter().println("This is doPost method!"); 13 res.getWriter().println(req.getParameter("username")+" visits."); 14 } 15 }
浏览器访问
5 Servlet生命周期
Servlet生命周期简述
① 当Servlet第一次被调用时,首先会触发init 函数,该函数会把servlet实例加载到内存,它在整个生命周期只会被调用一次。
② 然后Servlet 的 service函数会被调用,后台业务逻辑都在此实现
③ 第二次及以后调用Servlet,都是直接调用service函数。
④ 当web服务器停止或者reload时,tomcat关闭或者关机时,都会调用Servlet的destory函数销毁Servlet对象
Servlet 运行过程
Serlvet程序是由web服务器调用,web服务器接收到客户端请求后:
① Web服务器首先检查 Serlvet是否创建并且装载到内存,如果是则到第2步,如果未创建装载Serlvet 实例,则创建Servlet实例对象并且调用init函数装载该Servlet实例对象到内存中。
② 创建一个用于封装http请求消息的 HttpServletRequest 对象和一个代表http响应消息的 HttpServletResponse 对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
③ Tomcat重启或者关闭时;reload 该webapp时;关闭电脑时;都会调用destroy()方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?