-
2019-09-15 21:46:34更多相关内容
-
servlet特点、servlet实现、servlet生命周期
2022-02-17 20:16:46servlet特点、servlet实现、servlet生命周期一、什么是Servlet
-
servlet是Java EE规范之一,规范即接口
-
servlet是Java web三大组件之一。三大组件分别是:Servlet程序、Fiter过滤器、Listener监听器。
-
Servlet是运行在服务器上的Java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。
二、手动实现Servlet程序
-
编写一个类取实现Servlet接口
-
实现service方法,处理请求,并响应数据
-
到web.xml中去配置servlet程序的访问地址(以下是xml中的配置及意义)
<!-- servlet标签给Tomcat配置Servlet程序 --> <servlet> <!-- servlet-name标签 servlet程序起一个别名(一般是类名)--> <servlet-name>first</servlet-name> <!-- servlet-class 是Servlet程序的全类名 --> <servlet-class>com.example.FirstServlet.HelloServlet</servlet-class> </servlet> <!-- servlet-mapping 标签给servlet程序配置访问地址 --> <servlet-mapping> <!-- servlet-name标签的作用是告诉服务器,我当前的地址给哪个Servlet程序使用--> <servlet-name>first</servlet-name> <!-- url-pattern标签配置访问地址 / 在服务器解析时,表示地址为:http://ip:port/工程路径 /first 表示地址为:http://ip:port/工程路径/hello--> <url-pattern>/first</url-pattern> </servlet-mapping>
浏览器如何通过地址找到相应的资源:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dEfaLnI3-1645100178216)(https://note.youdao.com/yws/res/5782/WEBRESOURCE6da00204cc61d0746aaced1128c096a6)]
三、Servlet的生命周期
- 执行Servlet构造器方法
- 执行init方法
第一、二步在第一次访问时,创建Servlet程序会调用(默认情况)
在web.xml中的servlet标签中配置<load-on-startup>标签,当标签值为正数是为预加载,值较大的先加载,标签值为负数的为延时加载,默认值为-1。
- 执行service方法
第三步,每次访问都会调用
- 执行destroy方法
第四步,在web工程停止时调用。
四、servlet的三种实现方式
-
实现servlet接口 ,必须重写5个方法
public class Test implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
-
继承genericServlet抽象类,必须重写service方法
public class Test extends GenericServlet { @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { } }
-
继承HttpServlet,不需要重写任何方法,根据需要写doGet()和doPost()方法
public class Test extends HttpServlet{ }
tip:三者的关系,GenericServlet实现了Servlet接口,HttpServlet继承了GenericServlet类。
五、ServletConfig类
Servlet程序和ServletConfig对象都是由tomcat创建,
-
ServletConfig类的三大作用
-
获取Servlet程序的别名servlet-name的值
servletConfig.getServletName();
String servletName = servletConfig.getServletName(); System.out.println("servlet的别名:"+servletName);
-
获取初始化参数init-param,只能获取自己的参数
servletConfig.getInitParmeter(“username”);
String age = servletConfig.getInitParameter("age"); System.out.println(age);
-
获取ServletContext对象
servletConfig.getServletContext();
-
-
ServletContext类
-
什么是ServletContext对象
- 接口,表示Servlet上下文对象
- 一个web工程只有一个ServletContext对象实例
- ServletContext对象是一个域对象
什么是域对象?
域对象,可以像Map一样可以存取数的对象
这里的域指的是存取数据的操作范围
-
ServletContext类的四个作用
-
获取web.xml中配置上下文参数context-param
//获取全局参数 ServletContext context = getServletConfig().getServletContext(); String username = context.getInitParameter("username");
-
获取当前的工程路径,格式 :/工程路径
//获取当前工程路径 ServletContext context = getServletConfig().getServletContext(); System.out.println(context.getContextPath());
-
获取工程部署后在服务器硬盘的绝对路径
//获取工程部署的路径 /** * / 斜杆被服务器解析地址为http://ip:port/工程名/ */ ServletContext context = getServletConfig().getServletContext(); System.out.println(context.getRealPath("/"));
-
像Map一样存取数据,当工程销毁时,数据也就消失了。
//获取servletContext对象 ServletContext servletContext = getServletContext(); servletContext.setAttribute("key1","value1"); System.out.println(servletContext.getAttribute("key1"));
-
-
-
-
2021-11-14 自启动 Servlet特点及设置方式
2021-11-14 21:57:15特点 自启动 Servlet 在 Tomcat 启动时就会实例化,它的实例化过程不依赖请求,而是依赖容器启动。 可以通过在 web.xml 中的 <servlet> 标签中通过 <load-on-startup>1<load-on-startup> 配置自...自启动 Servlet
-特点及设置方式
自启动 Servlet 在 Tomcat 启动时就会实例化,它的实例化过程不依赖请求,而是依赖容器启动。
可以通过在 web.xml 中的 <servlet> 标签中通过 <load-on-startup>1<load-on-startup> 配置自启动 Servlet ,其中的参数 1 指启动优先级,数值越小优先级越高。- 这里的案例是利用自启动 Servlet 在加载时就自动读取 web.xml 配置里的init-param 中的文件路径,缓存到 ServletContext 对象里,供另一个下载文件的 Servlet 读取使用。
<servlet> <servlet-name>autoStartServlet</servlet-name> <servlet-class>com.wonderx.servlet.AutoStartServlet</servlet-class> <init-param> <param-name>imagPath</param-name> <param-value>files/测试图片.jpg</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
- 相应的Java类中也需要重写 init() 方法。
/** * 自启动 Servlet ,在 Tomcat 启动完成就会立刻实例化并自动运行 innit() 方法 * 重写 innit()方法 * 无需重写 doGet() 和 doPost() 方法 */ public class AutoStartServlet extends HttpServlet { @Override public void init() throws ServletException { ServletConfig servletConfig = this.getServletConfig(); String imgPath = servletConfig.getInitParameter("imagPath"); ServletContext servletContext = this.getServletContext(); servletContext.setAttribute("imagPath",imgPath); System.out.println("图片地址初始化完成!"); System.out.println(imgPath); } }
-
30.2 Servlet_自启动Servlet特点,Servlet_Servlet线程安全问题
2021-09-12 10:37:39Servlet_自启动Servlet特点 Servlet_Servlet线程安全问题 package ThreadSafeServlet07; /** * 多个线程访问同一个资源时 线程安全问题 */ import javax.servlet.ServletException; import ...Servlet_自启动Servlet特点
Servlet_Servlet线程安全问题
package ThreadSafeServlet07; /** * 多个线程访问同一个资源时 线程安全问题 */ import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class ThreadSafeServlet01 extends HttpServlet { private PrintWriter pw; //将printwrite定义到成员变量中, 当多个浏览器(多个线程)同时访问时容易出现抢占资源,如果把变量定义到成员变量记得实现线程同步 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("name"); pw = resp.getWriter(); synchronized (this){ //使用synchrenized来实现多个线程同步 try{ Thread.sleep(5000); pw.println(name); pw.flush(); pw.close(); }catch(Exception e){ e.printStackTrace(); } } } }
-
servlet特点 及常用快捷键
2018-10-18 14:58:19servlet的特点,生命周期 单实例 非线程安全的 性能高于多实例 比如统计访问人数 Integer i=0; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, ... -
Servlet的特点
2015-11-03 09:59:001、Servlet是一个供其他程序(Servlet引擎)调用的java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度 2、Servlet引擎是一种容器程序,它负责管理和维护所有Servlet对象的生命周期。Serlvet的加载,... -
移动应用服务器端开发(基于JSP技术)-2017 Servlet的特点 Servlet简介——Servlet的特点.pptx
2020-10-08 07:18:09北京电子科技职业学院Servlet的特点主讲人侯海平 老师目录1. Servlet的特点2. Servlet的工作过程13. Servlet的工作过程21. Servlet的特点1Servlet是一个供其他java程序(Servlet引擎)调用的java类它不能独立运行2... -
Servlet的特点及运行过程
2016-03-23 14:51:30Servlet的特点及运行过程由 -
配置Servlet两种方法以及特点详解
2020-08-24 22:07:33主要介绍了配置Servlet两种方法以及特点详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
servlet的特点
2018-10-18 15:33:36servlet的特点,生命周期 单实例 非线程安全的 性能高于多实例 比如统计访问人数 Integer i=0; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, ... -
Java Servlet是什么?有哪些特点? | 学步园
2021-02-26 16:53:37Servlet(Server Applet)是 Java Servlet 的简称,是使用 Java 语言编写的运行在服务器端的程序。具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。通常来说,Servlet 是指所有... -
servlet请求的转发以及特点
2022-02-26 14:29:40servlet请求的转发定义,特点,以及实现、附servlet程序以及HTMLform表单 -
servlet特点和运行过程
2010-05-30 17:03:33servlet提供其它java程序(servelt引擎)调用的java类,servlet之于servlet引擎 和applet与web浏览器关系是一样的,servlet的运行完全由引擎 来控制和调度。“servlet引擎是一种容器程序,负责管理和维护所有... -
tomcat关于配置servlet的url-pattern的问题思路详解
2021-01-09 02:49:27tomcat在配置web.xml的时候,servlet是一个比较重要的问题,在这里讨论一下servlet中的几个痛点 servlet url-pattern的匹配问题 url-pattern中 / 和 /* 的区别 url-pattern的优先级问题 根路径 / 的匹配问题 1 ... -
Servlet过滤器概念特点等详谈
2021-04-24 17:05:48Servlet过滤器概念特点等详谈一、Servlet过滤器的概念:◆Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。◆Servlet过滤器本身并不产生请求和响应对象,它只能... -
javaEE servlet 学习笔记
2018-05-07 22:38:29javaEE servlet 学习笔记 jsp本质上是servlet,但是为了更加符合mvc的框架,将页面显示和逻辑控制分离,jsp页面只负责页面,也就是mvc中的V(view),而servlet负责mvc中的C(control)。 而为了更加好的理解结构,一下... -
servlet重定向详解(八)
2020-08-29 05:58:43主要为大家详细介绍了servlet重定向的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
Java Servlet是什么?它有哪些特点?
2021-02-26 16:52:59Servlet(Server Applet)是 Java Servlet 的简称,是使用 Java 语言编写的运行在服务器端的程序。具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。通常来说,Servlet 是指所有... -
一文带你搞懂Spring MVC和servlet(面试必备)
2020-12-21 02:57:20一、Spring MVC与Jsp/Servlet比较1、传统的 Jsp/Servlet 技术体系弊端2、Spring Web MVC 特点3、Spring MVC工作流程二、idea创建servlet项目1、搭建过程2、servlet的工作流程3、servlet的生命周期三、idea创建Spring... -
Servlet开发搭建
2020-12-20 19:12:21特点: 自定义的 BaseDao,BaseDaoImpl,BaseServlet, 用 beanutils 来封装前台传入参数。 一. 添加 jar包 Maven 依赖的形式,添加相应的依赖 4.0.0 com.yjl.project Servlet_Dev 0.0.1-SNAPSHOT war 1.8 ... -
Servlet和Filter之间的区别与联系
2020-09-02 10:27:49主要介绍了Servlet和Filter之间的区别与联系的相关资料,需要的朋友可以参考下 -
Java Servlet和JSP教程
2021-01-08 22:09:16] 这是一个比较完整的Servlet、JSP教程,包含大量的实用资料和示例,... 目 录 一、Servlet和JSP概述 1.1 JavaServlet及其特点 1.2 JSP及其特点 二、设置开发、运行环境 2.1 安装Servlet和JSP开发工具 2.2 安装支持S -
jsp和Servlet各自特点
2013-04-11 19:29:052. jsp最终翻译成servlet执行.jsp容易上手和编写而servlet需要自己手动编译,很麻烦的 3. servlet现在更多是充当MVC模型控制器的角色,由它根据客户的请求,来动态组织返回数据或页面的重定向,而JSP只做显示(MVC模型,... -
Servlet.docx
2020-08-12 00:06:151.什么是servlet servlet是sun公司提供的用于开发动态web资源的技术,可以在servlet容器中运行 2.servlet开发步骤 1.写一个类,实现servlet接口 2.在web.xml中配置servlet -
Servlet是什么
2022-04-20 11:50:47servlet接口定义的是一套处理网络请求的规范,所有实现servlet的类,都需要实现它的那五个方法,其中最主要的是两个声明周期方法init()和destory(),还有一个处理请求的service()。也就是说,所有实现servlet接口的... -
一、Servlet和JSP概述
2021-01-08 21:56:361.1 Java Servlet及其特点 Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,... -
servlet
2021-11-17 23:42:462.servlet特点: (1)方便(2)跨平台(3)灵活性和可扩展性 二、servlet开发入门 1.servlet接口及其实现类 在servlet接口中定义了5个抽象方法 2.Servlet的生命周期: 初始化阶段: init(ServletConfig config) ... -
Servlet技术的特点及使用
2016-01-01 19:00:00一、Servlet的简介Servlet的概述servlet是运行在服务端的java程序 servlet是一套规范(接口) 外界都可以访问到servlet的快速入门步骤:(1) 创建一个类 实现servlet(2)覆盖servlet接口中的全部方法(尤其是service方法)... -
servlet1.pdf
2020-09-10 13:44:16Servlet(Server Applet)是 Java Servlet 的简称,称为小服务程序或服务连接器,用 Java 编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数 据,生成动态 Web 内容。 2. 快速入门...