【JAVAWEB学习笔记】13_servlet

JavaWeb核心之Servlet

教学导航

学习目标:

案例一、完成用户登录功能

案例二、记录成功登录系统的人次

一、Servlet简介

1.什么是Servlet

Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API  动态的向客户端输出内容

servlet规范:包含三个技术点

1)servlet技术

2)filter技术---过滤器

3)listener技术---监听器

2.Servlet快速入门

实现步骤:

1)创建类实现Servlet接口

2)覆盖尚未实现的方法---service方法

3)在web.xml进行servlet的配置

但在实际开发中,我们不会直接去实现Servlet接口,因为那样需要覆盖的方法太多,  我们一般创建类继承HttpServlet

实现步骤:

1)创建类继承HttpServlet类

2)覆盖doGet和doPost

3)在web.xml中进行servlet的配置

画图描述整个访问过程:

二、Servlet的API(生命周期)

(1)Servlet接口中的方法

1)init(ServletConfig config)

何时执行:servlet对象创建的时候执行

ServletConfig : 代表的是该servlet对象的配置信息

2)service(ServletRequest request,ServletResponse response)

何时执行:每次请求都会执行

ServletRequest :代表请求 认为ServletRequest 内部封装的是http请求的信息

ServletResponse :代表响应 认为要封装的是响应的信息

3)destroy()

何时执行:servlet销毁的时候执行

(2)HttpServlet类的方法

1)init()

2)doGet(HttpServletRequest request,HttpServletResponse response)

3)doPost(HttpServletRequest request,HttpServletResponse response)

4)destroy()

(3)Servlet的生命周期(面试题)

1)Servlet何时创建

默认第一次访问servlet时创建该对象

2)Servlet何时销毁

服务器关闭servlet就销毁了

3)每次访问必然执行的方法

service(ServletRequest req, ServletResponse res)方法

问题:对XXXServlet进行了10次访问,init(),destory(),service(),doGet(),doPost() 一共执行力多少次?request对象创建几个?response创建几个?

三、Servlet的配置

1.基本配置

其中url-pattern的配置方式:

1)完全匹配 访问的资源与配置的资源完全相同才能访问到

2)目录匹配 格式:/虚拟的目录../*   *代表任意

3)扩展名匹配 格式:*.扩展名

注意:第二种与第三种不要混用 /aaa/bbb/*.abcd(错误的)

2.服务器启动实例化Servlet配置

Servlet的何时创建:默认第一次访问时创建

为什么是默认?

当在servlet的配置时 加上一个配置 <load-on-startup> servlet对象在服务器启动   时就创建

3.缺省Servlet

可以将url-pattern配置一个/,代表该servlet是缺省的servlet

什么是缺省的servlet?

当你访问资源地址所有的servlet都不匹配时 , 缺省的servlet负责处理

其实,web应用中所有的资源的响应都是servlet负责,包括静态资源

4.欢迎页面

四、ServletContext对象

1.什么是ServletContext对象

ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象     内部封装是该web应用的信息,ServletContext对象一个web应用只有一个

问题:一个web应用有几个servlet对象?----多个

ServletContext对象的生命周期?

创建:该web应用被加载(服务器启动或发布web应用(前提,服务器启动状           态))

销毁:web应用被卸载(服务器关闭,移除该web应用)

2.怎样获得ServletContext对象

1)ServletContext servletContext = config.getServletContext();

2)ServletContext servletContext = this.getServletContext();

3.ServletContext的作用

(1)获得web应用全局的初始化参数

web.xml中配置初始化参数

通过context对象获得参数

(2)获得web应用中任何资源的绝对路径(重要 重要 重要)

方法一:String path = context.getRealPath(相对于该web应用的相对地址);

方法二:

//在读取src(classes) 下的资源是可以同类加载器----专门加载classes 下的文件的

//getResource() 参数是一个相对地址 相对classes

String path = ContextServlet.class.getClassLoader().getResource("c.txt").getPath();

System.out.println(path);

(3)ServletContext是一个域对象(重要 重要 重要)

什么是域对象?什么是域?

存储数据的区域就是域对象

ServletContext域对象的作用范围:整个web应(所有的web资源都可以随意向      servletcontext域中存取数据,数据可以共享)

域对象的通用的方法:

setAtrribute(String name,Object obj);

getAttribute(String name);

removeAttribute(String name);

附图:

servlet访问过程

servlet访问过程2

用户登录

域对象

时间: 2024-10-13 11:41:15

【JAVAWEB学习笔记】13_servlet的相关文章

Javaweb学习笔记4—Reuest&amp;Response

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第四段学习. Request和Response还是比较重要的 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 响应对象 1,Response响应: 常用响应对象:ServletResponse HttpServletResp

Javaweb学习笔记5—Cookie&amp;Session

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍  今天来讲javaweb的第五阶段学习. Cookie和Session同样是web开发常用到的地方. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.会话管理技术概述 1 什么是会话? 这里的会话指的是web开发中的一次通话过程,当打开浏览

Javaweb学习笔记6—EL表达式与JSTL及自定义标签

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.EL表达式 1,EL简介 Expression Lan

JavaWeb学习笔记之Servlet(一)

1. 引子: 当我们开始进入JavaWeb开发的学习时,我们就必须要和Servlet和HTTP这两个词进行打交道了,尤其是Servlet.即使到了后面使用JSP (我们知道JSP其本身就是一个Servlet)来进行开发我们的应用. 下图就是 Servlet API中相应的UML图,在学习JavaWeb 开发时,我们最好对下面的各个Servlet中的方法做一定的了解及其相应的图中的关系,尤其是HttpServletRequest和HttpServletResponse 中的方法. 2. 部署服务器

Javaweb学习笔记10—文件上传与下载

 今天来讲javaweb的第10阶段学习.文件的上传与下载,今天主要说的是这个功能的实现,不用说了,听名字就是外行人也知道肯定很重要啦. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多 一*, 文件的上传:      1 *分析实现步骤: 1.1* 客户端浏览器通过文件域选择本地要上传的文件. * 点击"上传"按钮

【JAVAWEB学习笔记】09

今天晨读单词: order:订单constraint:(强制)约束foreign key:外键references:指向orderitem:订单项join:加入resourceBundle:资源捆绑classLoader:类加载器properties:属性inputstream:输入流 今日学习目标: 1.能够描述表与表的关系 2.能独立编写一对多的表关系SQL语句 3.能独立编写多对多的表关系SQL语句 4.能使用SQL进行多表查询 5.能使用JDBC完成单表增删改查操作 值得注意的是:除了d

Javaweb学习笔记9—过滤器

? 今天来讲javaweb的第9阶段学习. ? 过滤器,我在本次的思维导图中将过滤器和监听器放在一起总结了,监听器比较简单就不单独写了. ? 老规矩,首先先用一张思维导图来展现今天的博客内容. ? ? ? ? ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 ? 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. ? ? ? ? ? ? 1* 作用: ? ? ? 用于过滤请求(Request)与响应(Response)的数据内容.

Javaweb学习笔记7—JDBC技术

今天来讲javaweb的第7阶段学习. JDBC技术,关于JDBC本篇博客只介绍了它的一部分,后面博客会更加深入探讨. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一,概述: 1,定义 各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现.SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了J

Javaweb学习笔记8—DBUtils工具包

今天来讲javaweb的第8阶段学习.DBUtils技术,DBUtils是我们操作数据库很常用的功能,虽然后期使用都是它的封装结果,但是也需要掌握. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多 一* 概述: 1* 定义: 用于封装操作数据库的增删改查. 2* 特点: A* 对于数据表的读操作,他可以把结果转换成List.Ar