Servlet 入门
目录
一、Servlet 介绍
二、Servlet 入门
1、创建JavaEE Web项目
2、定义类,实现 Servlet 接口
3、实现接口中的抽象方法
4、配置 Servlet
三、Servlet 分析
1、原理分析
2、Servlet 中的生命周期
四、注解配置(不用web.xml配置)
五、Servlet 体系结构
1、GenericServlet 类
2、HttpServlet 类
一、Servlet 介绍
Servlet(server applet)是运行在服务器端的小程序,其实就是一个接口,定义了 Java 类被浏览器访问到(Tomcat 识别)的规则,我们可以自己定义一个类,来实现 Servlet 接口,复写方法
二、Servlet 入门
1、创建JavaEE Web项目
具体参见上一篇博客
2、定义类,实现 Servlet 接口
public class myServlet implements Servle{}
3、实现接口中的抽象方法
public class myServlet implements Servlet {/*** 初始化方法* 在Servlet被创建是执行,只会执行一次*/@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println("初始化");}/*** 获取ServletConfig配置对象* @return*/@Overridepublic ServletConfig getServletConfig() {return null;}/*** 提供服务的方法* 每次Servlet被访问的时候执行,可执行多次* @return*/@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("Hello Servlet!");}/*** 获取Servlet信息,如作者、版本等* @return*/@Overridepublic String getServletInfo() {return null;}/*** 销毁方法* 在服务器正常关闭的时候执行,执行一次*/@Overridepublic void destroy() {System.out.println("销毁");}
}
4、配置 Servlet
在 web.xml 文件里面进行配置,在根标签里面加入如下配置
<!--配置Servlet -->
<servlet><servlet-name>oneStar</servlet-name><servlet-class>web.servlet.myServlet</servlet-class>
</servlet><servlet-mapping><servlet-name>oneStar</servlet-name><url-pattern>/oneStar</url-pattern>
</servlet-mapping>
三、Servlet 分析
1、原理分析
- 当服务器接收到客户端浏览器的请求后,会解析请求的URL路径,获取访问的 Servlet 的资源路径
- 查找 web.xml 文件,看是否有对应的<url-pattern>标签体内容
- 如果有,则再找到对应的<url-pattern>全类名
- Tomcat 将字节码文件加载进内存,并创建其对象
- 调用其方法
2、Servlet 中的生命周期
- 被创建:执行 init 方法,只执行一次
- 默认情况下,第一次被访问时,Servlet 被创建
- 可以配置执行 Servlet 的创建时机,可在<servlet>标签中配置
- 配置第一次被访问时创建:<load-on-startup>标签配置为负数(默认为-1)
- 配置服务器启动时被创建:<load-on-startup>标签配置0或正数
- init 方法只执行一次,说明一个 Servlet 在内存中只存在一个对象,Servlet 是单例的
- 多个用户同时访问时,可能存在线程安全问题,所以尽量不要在Servlet中定义成员变量,即使定义了也不要对值进行修改
- 提供服务:执行 server 方法,可以执行多次
- 每次访问 Servlet 时,Servlet 方法都会被调用一次
- 被销毁:执行 destory 方法,只执行一次
- Servlet 销毁时执行,只有服务器正常关闭时,才会执行 destory 方法
四、注解配置(不用web.xml配置)
在 Servlet3.0 以上的版本中,支持使用注解配置,可以不需要 web.xml 文件,在类上使用 @webServlet 注解进行配置,其实质就是配置WebServlet.class 文件里面的 urlPatterns 参数,urlPatterns 是一个 String 类型的数组,使用该数组来配置访问路径,该配置有多种方法:
- 一个 Servlet 可以定义一个访问路径:@WebServlet("/oneStar")
- 一个 Servlet 可以定义一个数组(多个)访问路径:@WebServlet({"/oneStar","/twoStar","/threeStar"})
- 支持多层路径:@WebServlet("/user/oneStar")
- 使用通配(任何目录):@WebServlet("/*")
- 使用通配(带后缀):@WebServlet("*.do")
@WebServlet("/oneStar")
//@WebServlet({"/oneStar","/twoStar","/threeStar"})
//@WebServlet("/user/oneStar")
//@WebServlet("/*")
//@WebServlet("*.do")
public class Main implements Servlet {}
这样就可以启动项目了
五、Servlet 体系结构
Servlet 是一个接口,定义了 Java 类被浏览器访问到的很多方法,我们可以直接去实现这些方法,但一般不这样做,而是使用 Servlet 接口的抽象子类 GenericServlet 类或者 GenericServlet 的抽象子类 HttpServlet 类,实现 service() 方法。
1、GenericServlet 类
将 Servlet 接口中其他的方法做了默认空实现,只将 service() 方法作为抽象,因此可以直接继承 GenericServlet,实现 service() 方法即可,而在实际开发当中,往往会在 service() 方法中判断请求的方式,判断是 get 方法还是 post 方法,是一个比较繁琐的过程,因此可以使用 HttpServlet 类来简化了这一过程。
2、HttpServlet 类
HttpServlet 类是对 HTTP 协议的封装,简化了操作
- 定义类继承 HttpServlet
- 重写 doGet 或 doPost 方法
@WebServlet("/oneStar")
public class Main extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("Do Get!");}
}
Servlet 入门相关推荐
- java servlet 入门_servlet 入门详解
servlet 入门详解 Servlet是一种服务器端的编程语言,是J2EE中比较关键的组成部分.Servlet本质上也是Java类,编写Servlet需要遵循java的基本语法,但是与一般的Java ...
- Servlet入门1
Servlet入门1 1.1 关于Servlets Servlets是JAVA 2.0中新增的一个全新功能.JAVA Servlets 是运行在请求/面向请求服务器上的模块,比如一个Java-ena ...
- Java Servlet系列之Servlet入门
什么是Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服 ...
- (008)前端css,js,Jquery,Servlet入门
摘要:本周的学习内容是前端的css,js,Jquery,Servlet的入门; 文章目录 1 CSS 1.1 CSS入门以及使用方式 1.2 CSS的选择器(重点) 1.3 css的样式属性 1.3. ...
- JavaWeb Tomcat服务器与Servlet入门以及简单登录功能的实现
Day12 一.Tomcat服务器 1.web资源 2.服务器 3.Tomcat服务器 4.idea 与tomcat 的整合 二.Servlet入门 1. servlet的三种实现方式 2.servl ...
- Servlet入门到精通-任亮-专题视频课程
Servlet入门到精通-5007人已学习 课程介绍 Servlet 是在服务器上运行的小程序.这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独 ...
- Servlet入门(一)
Servlet入门(一) First Why? a------- CGI(common gateway interface)处理效率低: b------- Servlet可节省服务器开销 The ...
- 服务器和Servlet入门
服务器和Servlet入门 一.软件架构 (一)C/S/架构:C/S架构即Client/Server(客户机/服务器)结构. 图示: (二)B/S架构:B/S即Browser/Server(浏览器/服 ...
- Java Web之Servlet入门
Java Web之Servlet入门 上世纪90年代,随着Internet和浏览器的飞速发展,基于浏览器的B/S模式变得火爆起来. 最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源, ...
最新文章
- CodeForces - 1335E2 Three Blocks Palindrome (hard version)(思维)
- react.js从入门到精通(一)
- 损失函数与优化器理解+【PyTorch】在反向传播前为什么要手动将梯度清零?optimizer.zero_grad()
- 9月24日直播丨数据库大咖讲坛(第7期):数据库内核技术与行业应用
- mac更新之后vmware fusion下vmware tools报错
- Pulseaudio之load-module加载module-always-sink(十四)
- 读书笔记(从0到1)
- Toon Boom Harmony 12 for Mac(二维动画设计工具)
- java web gradle_java web使用gradle配置详情
- 伺服驱动系统的电磁干扰问题
- vscode 保存时自动格式化遇到的坑
- 路由器与交换机的基本工作原理
- 女儿拿着小天才电话手表问我App启动流程
- 数模转换器的构成和特点
- Guitar Pro 7吉他谱教程——删除小节
- office 无法正常读取打开 pptx 文件的解决办法
- win7原版镜像_小白重装win7旗舰版系统图文教程
- 阳光系统下载 Win7电脑锁屏壁纸怎么设置
- 51单片机:LED流水灯(仿真+代码)
- 车辆识别号(VIN)验证