目录

Servlet入门:

Servlet关系视图 :

Servlet映射方式:

Servlet创建时机:

默认Servlet

ServletConfig

ServletConfig 配置方式

ServletConfig 常用方法

ServletContext 介绍

域对象

ServletContext 配置方式

ServletContext 常用方法

注解开发Servlet

抖一抖


Servlet是运行在Java服务器端的程序,用于接收和相应来自客户端基于HTTP协议的请求。

如果想要实现Servlet功能,可以通过实现javax.servlet.Servlet接口或者继承它的实现类。

Servlet是单例模式,也就是整个应用中只有一个实例对象,虽然是单线程,但是也存在线程不安全,解决办法:不要定义成员变量,而是要定义局部变量,或者加上synchronized(this){代码}

核心方法:service(),任何客户端的请求都会经过该方法。

 小tips:如果读者是web项目,那么可以在WEB-INF文件夹下的web.xml文件里加入如下配置来更改默认访问的主页

//修改访问tomcat默认主页
<welcome-file-list><welcome-file>自己的访问主页路径</welecome-file>
</welcome-file-list>

Servlet入门:

servlet是一个接口,运行在web服务器中的小程序,实现servlet功能有三种方式:

1.实现servlet接口        2.继承GenericServlet        3.继承HttpServlet

tip1.servlet初始化时都会执行init方法;

tip2.所有客户端请求都会经过service()方法;

tip3.当servlet从服务器中移除的时候会调用destroy()方法,最后由垃圾回收器进行回收。

Servlet关系视图 :

Servlet映射方式:

No.1 具体名称的的方式

No.2 /开头+通配符*的方式,只要符合目录结构,不用考虑结尾是什么

No.3 通配符*+固定格式结尾的方式。只要符合固定结尾的格式即可,不用考虑前面的路径

优先级问题:越是具体的优先级越高,No.1 > No.2 > No.3

Servlet创建时机:

1. 第一次访问时创建

  • 优势:减少对服务器内存的浪费,提高了服务器启动的效率
  • 弊端:如果有一些要在应用加载时就做的初始化操作,无法完成

2. 服务器加载时创建

  • 优势:提前创建好对象,提高了首次执行的效率,可以完成一些应用加载时要做的初始化操作
  • 弊端:对服务器内存占用较多,影响了服务器启动的效率

实现方法:

在<servlet>标签中,添加<load-on-startup>标签。

<servlet><servlet-name>servletDemo</servlet-name><servlet-class>com.kolacc.demo.demo01</servlet-class><load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping><servlet-name>servletDemo</servlet-name><url-pattern>/demo</url-pattern>
</servlet-mapping>
  • 正整数代表服务器加载时创建,值越小,优先级越高。负整数或不写代表第一次访问时创建。

默认Servlet

  • 默认servlet是有服务器提供的一个servlet。它配置在Tomcat的conf目录中的web.xml中。
  • 它的映射路径是<url-pattern>/</url-pattern>,我们在发送请求时,首先会在我们项目中的web.xml中查找映射配置,找到则执行。但当找不到对应的Servlet路径时,就去找默认的Servlet处理,所以,一切都是Servlet。
   <!-- The mapping for the default servlet --><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

ServletConfig

  • ServletConfig是Servlet的配置参数对象,在Servlet的规范中,允许为每一个Servlet都提供一些初始化的配置。所以,每个Servlet都有一个自己的ServletConfig。
  • 作用:在Servlet的初始化时,把一些配置信息传递给Servlet。
  • 生命周期:和Servlet相同。

ServletConfig 配置方式

  • 在<servlet>标签中,通过<init-param>标签来配置,有两个子标签。
  • <param-name>:代表初始化的key。
  • <param-value>:代表初始化的value。

通过init方法对ServletConfig对象赋值

ServletConfig 常用方法

  • getInitParameter(String name)        根据参数名称获取参数的值        返回值String类型
  • getInitParameterNames()                获取所有参数名称的枚举           返回Enumeration类型
  • getServletName()                            获取Servlet名称                          返回String类型
  • getServletContext()                         获取ServletContext对象              返回ServletContext

ServletContext 介绍

  • ServletContext是应用上下文对象(应用域对象)。每一个应用中只有一个ServletContext对象
  • 作用:可以配置和获取应用的全局初始化参数,可以实现Servlet之间的数据共享。
  • 生命周期:应用一加载则创建,应用被停止则销毁

域对象

  • 域对象指的是对象有作用域。也就是有作用范围。域对象可以实现数据的共享。不同作用范围的域对象,共享数据的能力也不一样。
  • 在Servlet规范中,一共有4个域对象。ServletContext就是其中的一个。它也是web应用中最大的作用域,也叫application域。它可以实现整个应用之间的数据共享!

ServletContext 配置方式

  • 在<web-app>标签中,通过<context-param>标签来配置。有两个子标签。
  • <param-name>:代表全局初始化参数的key。
  • <param-value>:代表全局初始化参数的value。

ServletContext 常用方法

  • getInitParameter(String name)        根据名称获取全局配置的参数        返回值为String类型
  • getContextPath()                             获取当前应用的访问虚拟目录         返回值为String类型
  • getRealPath(String path)  根据虚拟目录获取应用部署的磁盘绝对路径      返回值为String类型
  • setAttribute(String name,Object value)    向应用域对象中存储数据           没有返回值
  • getAttribute(String name)                通过名称获取应用域对象中的数据     返回值为Object类型
  • removeAttribute(String name)         通过名称移除应用域对象中的数据      没有返回值

注解开发Servlet

配置文件开发servlet是基于servlet2.5,servlet3.0之后就可以使用注解来进行开发servlet,同时也可以使用注解方式开发,因为向下保留

直接使用@WebServlet("/访问路径")

抖一抖

definition        n.定义;阐述;清晰度

BeanDefinition

一个接口,包含了一些bean的基本信息(名称,所属类名称,是否单例,作用域等等)

Servlet(理解)相关推荐

  1. JSP中javaBean和Servlet理解

    以前,没接触JAVA开发,总以为javabean和servlet很神奇,很怪,很复杂,现在找了本JSP的很基础的书看了,对于它们的大概总算了解了. javaBean可以说就是一个JAVA类,只不过它有 ...

  2. servlet 理解 --servlet笔记

    http  80 smtp 25 pop3 110 ftp  23 https 443 Host里面 <Context path="/itcast" docBase=&quo ...

  3. 毛哥的快乐生活(21) 让Servlet理解用户的需求

    本章源码:Github 程序是干啥的 还记得最开始的程序吗,无非是输出. System.out.println("Hello World"); 此时用户的请求只有一个目标,就是这个 ...

  4. servlet必知细节(一)

    servlet必知细节(一) 今天复习了一下servlet,有过一些编程经验后,与最初学习servlet相比,对servlet理解的角度不同了,最初只是学习了如何写一个servlet,api怎么用,现 ...

  5. 深入理解HTTP Session

    为什么80%的码农都做不了架构师?>>>    深入理解HTTP Session session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词 ...

  6. 001 Servlet 介绍

    Servlet(Server Applet),全称Java Servlet.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet是指Java语 ...

  7. java web入门——概念理解、名词解释

    引言:当你想入门java web后,一定会查阅到很多相关的名词:Servlet,HTML,Spring...等等之类的,但是对于他们之间的关系总是比较混乱的,这篇文章就是理清这些名词的关系. 什么是w ...

  8. 探秘Tomcat——一个简易的Servlet容器

    即便再简陋的服务器也是服务器,今天就来循着书本的第二章来看看如何实现一个servlet容器. 背景知识 既然说到servlet容器这个名词,我们首先要了解它到底是什么. servlet 相比你或多或少 ...

  9. 初学Java Web(3)——第一个Servlet

    这学期 Java Web 课程的第一节课就简短复习了一下 Java 的一些基础知识,所以觉得 Java 的基础知识还是很重要的,但当我想要去写一篇 Java 回顾的文章的时候发现很难,因为坑实在太多了 ...

  10. Servlet 编程基础

    可参考博文 超文本传输协议HTTP. Servlet 概述 Servlet(Server Applet)是Java Servlet 的简称,称为小服务程序或服务连接器,用Java 编写的服务器端程序, ...

最新文章

  1. Zookeeper 服务注册与发现01——服务提供者
  2. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(十九)强制重做
  3. java获取本地外网ip地址
  4. 三国大将风云java_三国正史四大猛将:临阵斩杀敌方大将,连吕布和马超也做不到...
  5. 【MySQL】存储过程中,怎么把多个select结果,合并成一个结果集返回?
  6. testng接口自动化测试_Java+Maven+TestNG接口(API)自动化测试教程(10) 使用 Jenkins 构建自动化测试持续集成...
  7. spring注入私有字段_Spring字段依赖注入示例
  8. Protobuf使用规范分享
  9. 钉钉总裁不穷首谈产品观:To B产品用户不只是CEO
  10. c语言的高级编程,C语言高级编程
  11. php字符串的截取方式
  12. mysql select 列名_Mysql查询出所有列名
  13. 软件设计架构中各模块breakdown
  14. 第二篇第十一章灭火救援设施
  15. CodeCombat计算机科学6.14脆弱的迷宫
  16. 程序员必须知道的9大数据挖掘工具
  17. 珍爱生命,举手之劳__如何优雅的叫优步专车
  18. dlg和app的区别
  19. 微型计算机系统原理接口与EDA设计技术,微型计算机系统与接口
  20. 如何制作带照片的工作证

热门文章

  1. Vue路由(vue-router)详细讲解
  2. 1-企业权限管理系统
  3. HCIA-Big Data华为认证大数据工程师 课程笔记 + 课后习题
  4. 企业需要定制CRM系统的三大理由
  5. 第一天校内实训实习日志
  6. C++ 统计输入的字符串中英文字母的个数
  7. 标准导电滑环有哪些?直插式滑环
  8. pli测试50题题库_PLI认知能力测试,谁懂这个?我面试刚做完,12分钟答了26道题,自我感觉没什么错误,有希望通过吗?...
  9. (转)CMMI证书背后的6大怪现象
  10. 矩形图:数据之美在图形中展现