首页 > 编程语言 > 详细

Javaweb学习笔记3—Serverlet

时间:2015-03-23 01:42:10      阅读:786      评论:0      收藏:0      [点我收藏+]

今天来讲javaweb的第三个阶段学习。

老规矩,首先先用一张思维导图来展现今天的博客内容。

ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载

另外:如果图看不清的话请右击---在新窗口中打开会清楚很多。

技术分享

一、Servlet概述

????????1 Servlet是什么?

????????????是sun公司提供一套规范,用于接受客户浏览器发出的请求,响应给客户浏览器。是运行在服务端一个小程序。

????????2 Servlet入门:Servlet是一个接口,要想实现Servlet功能必须实现该接口或者继承该接口的实现类。

????????????已知实现类:GenericServlet

????????????Servlet接口中的方法:

????????????init(ServletConfig) 初始化

????????????service(ServletRequest,ServletResponse) 核心方法

????????????destroy() 销毁

二、Servlet编码步骤

????????主要目的:为了了解Servlet从无到有,到能运行访问的一个过程

第一步:编写

????????1 编写FirstServlet实现Servlet接口或者继承GenericServlet

技术分享

第二步:编译????

2 编译FirstServlet

????????直接用javac命令编译servlet会有问题,需要设置classpath,加入servlet-api.jar

????????该jar存在于tomcat/lib/

技术分享

????第三步:配置

3 配置Servlet,使其生效

????????????配置Servlet,是针对应用而言的,在web.xml中配置

技术分享

????????注意:web.xml文件必须另存为UTF-8格式编码的

????第四步:部署

????????

4 部署到Tomcat,访问http://localhost:8080/firstservlet/FirstServlet

????????技术分享

????????明确 规范(sun) 服务器(tomcat) 我们的应用之间的关系

技术分享

????????

三、Servlet执行过程

????1 客户浏览器——Tomcat服务器——应用——应用的配置(web.xml)——Servlet——Servlet执行完成响应客户浏览器

????技术分享

四、Servlet编码方式

????????1 继承GenericServlet类,是javax.servlet包下的一个抽象类

????????案例:ServletDemo1 了解创建一个Servlet是两步,第一步建类,第二部映射

????????2 继承HttpServlet类,是javax.servlet.http包下面的一个抽象类,是GenericServlet的子类。

?

注意:(重要) 我们在继承HttpServlet时,只需要覆盖doxxx的方法,常用就是doGetdoPost,不要覆盖service

????????案例:ServletDemo2 继承自HttpServletServletDemo2的查找顺序

????????技术分享

技术分享

技术分享

五、Servlet生命周期

????????出生——活着——死亡,从生到死的一个过程(人有,内存中的对象也有)

????????出生:请求到达Servlet时,对象就创建出来,并且初始化成功。只出生一次,就放到内存中。

????????活着:服务器提供服务的整个过程中,该对象一直存在,每次只是方法service方法。

????????死亡:当服务停止时,或者服务器挂机时,对象消亡。

????????单例模式:只有一个对象实例。Servlet就是单例的,只有一个实例。

技术分享

????????技术分享

六、Servlet线程安全

????????1 Servlet不是线程安全的。

????????技术分享

????????注意:在Servlet中尽量避免使用全局变量,但不是绝对。请参看HttpServletservice(HttpServletRequest,HttpServletRequest)方法。

七、Servlet注意事项

????????1 映射方式:

????????????方式1:通配符+固定结尾格式 *.do

????????????方式2/开头+通配符???????????? /servlet/*

????????????方式3:指名道姓????(最常用)???? /servlet/ServletDemo????

????????????方式1和方式2之间是有一定的区别:就是优先级的问题。

????????????方式3的优先级最高,其次是以/开头的,最后才是*.do方式。

????????2 多路径映射:

????????????url-pattern可以映射多个地址

????????????技术分享

????3 配置启动服务时,自动创建servlet

load-on-startup元素标记容器

是否在启动的时候就加载这个servlet(实例化并调用其init()方法)

????????

使用:<load-on-startup>启动顺序,必须是正整数,且不能重复</load-on-startup>来设置服务器启动时创建servlet对象

????技术分享

????4 默认Servlet

????????????当我们访问的资源,在web.xml中找不到对应的映射时,这个时候会去找默认的Servlet,该Servlet由服务器提供,Tomcat服务器的默认Servlet在:

????????apache-tomcat-7.0.57-src.zip\apache-tomcat-7.0.57-src\java\org\apache\catalina\servlets

????????一切都是Servlet

八、Servlet参数配置:ServletConfig

????????1 ServletConfig 是什么?

????????????它是Servlet的配置参数对象,每个Servlet都一个自己的ServletConfig

????????2 ServletConfig 怎么获取?

????????????由服务器容器提供,我们直接使用即可。每次覆盖init方法的时候,注意:覆盖的是没有参数的init方法。

????????3 如何配置ServletConfig参数?

?

????????????<init-param>

????????????????<param-name></param-name>

????????????????<param-value></param-value>

????????????</inti-param>

????????????要写在<servlet>元素内

????????????技术分享

????????4 如何使用ServletConfig得到配置好的参数

????????技术分享

????????技术分享

九、ServletContext

????????1 ServletContext是什么?

????????????它是应用的全局上下文对象,每个应用只有一个ServletContext对象。

每个应用都可以有多个Servlet,多个Servlet之间的通信就是通过ServletContent对象获取。

????????2 如何获取ServletContext

????????????????技术分享

?

????????3 ServletContext 生命周期

????????????出生——活着——死亡

????????????出生: 应用一加载,该对象就被创建出来了。只有一个实例对象。

???????????????? (ServletServletContext都是单例的)

????????????活着:只要应用一直提供服务,该对象就一直存在。

????????????死亡:应用被卸载(或者服务器挂了),该对象消亡。

????????4 域对象的概念

????????????该对象有一个作用域(就是使用的范围),是web应用中最大的作用域,叫application域。每个应用只有一个application域。

????????

如何往域中存放参数及如何获取域中的参数

技术分享

技术分享

????????5 如何获取全局参数

???????????? 针对ServletContext配置的参数就是全局参数

????????????技术分享

????????????技术分享????

????????Servlet类视图全图:

????技术分享????

????????6 ServletContext的一些细节

????????????1 请求转发(基于ServletContext

????????????请求转发是服务器的行为,服务器内部自己去请求下一个地址,浏览器地址栏不会发生变化。

????????????技术分享

?

????????????2 使用ServletContext获取文件路径,实现下载

????????????使用的方法是context.getRealPath();

????????????技术分享

????????????3 读取配置文件的各种方式(.properties)

????????????????InputStream

????????????????ResourceBundle

????????????????ClassLoader

???????????????? 参看:day07_01_servlet/ServletDemo12

Javaweb学习笔记3—Serverlet

原文:http://www.cnblogs.com/jinfulin/p/4358603.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!