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

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

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

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

java JxBrowser使用 java web serverlet_服务器

一、Servlet概述

是什么?

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

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

            已知实现类:GenericServlet

            Servlet接口中的方法:

            init(ServletConfig) 初始化

            service(ServletRequest,ServletResponse) 核心方法

            destroy() 销毁

二、Servlet编码步骤

从无到有,到能运行访问的一个过程

第一步:编写

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

java JxBrowser使用 java web serverlet_java_02

第二步:编译    

编译FirstServlet

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

存在于tomcat/lib/

java JxBrowser使用 java web serverlet_tomcat_03

    第三步:配置

3 配置Servlet,使其生效

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

java JxBrowser使用 java web serverlet_服务器_04

文件必须另存为UTF-8格式编码的

    第四步:部署

        

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

        

java JxBrowser使用 java web serverlet_java JxBrowser使用_05

) 服务器(tomcat) 我们的应用之间的关系

java JxBrowser使用 java web serverlet_java_06

        

三、Servlet执行过程

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

    

java JxBrowser使用 java web serverlet_java_07

四、Servlet编码方式

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

了解创建一个Servlet是两步,第一步建类,第二部映射

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

 

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

继承自HttpServlet的ServletDemo2的查找顺序

        

java JxBrowser使用 java web serverlet_java JxBrowser使用_08

java JxBrowser使用 java web serverlet_java JxBrowser使用_09

java JxBrowser使用 java web serverlet_服务器_10

五、Servlet生命周期

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

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

方法。

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

就是单例的,只有一个实例。

java JxBrowser使用 java web serverlet_java JxBrowser使用_11

        

java JxBrowser使用 java web serverlet_服务器_12

六、Servlet线程安全

不是线程安全的。

        

java JxBrowser使用 java web serverlet_java JxBrowser使用_13

中尽量避免使用全局变量,但不是绝对。请参看HttpServlet的service(HttpServletRequest,HttpServletRequest)方法。

七、Servlet注意事项

映射方式:

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

:/开头+通配符

方式3:指名道姓

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

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

多路径映射:

可以映射多个地址

            

java JxBrowser使用 java web serverlet_服务器_14

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

load-on-startup元素标记容器

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

        

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

    

java JxBrowser使用 java web serverlet_java JxBrowser使用_15

默认Servlet

中找不到对应的映射时,这个时候会去找默认的Servlet,该Servlet由服务器提供,Tomcat服务器的默认Servlet在:

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

八、Servlet参数配置:ServletConfig

是什么?

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

怎么获取?

方法的时候,注意:覆盖的是没有参数的init方法。

如何配置ServletConfig参数?

 

            <init-param>

                <param-name></param-name>

                <param-value></param-value>

            </inti-param>

元素内

            

java JxBrowser使用 java web serverlet_java JxBrowser使用_16

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

        

java JxBrowser使用 java web serverlet_服务器_17

        

java JxBrowser使用 java web serverlet_tomcat_18

九、ServletContext

是什么?

对象。

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

如何获取ServletContext?

                

java JxBrowser使用 java web serverlet_tomcat_19

 

生命周期

            出生——活着——死亡

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

和ServletContext都是单例的)

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

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

域对象的概念

应用中最大的作用域,叫application域。每个应用只有一个application域。

        

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

java JxBrowser使用 java web serverlet_服务器_20

java JxBrowser使用 java web serverlet_java JxBrowser使用_21

如何获取全局参数

配置的参数就是全局参数

            

java JxBrowser使用 java web serverlet_java JxBrowser使用_22

            

java JxBrowser使用 java web serverlet_服务器_23

    

类视图全图:

    

java JxBrowser使用 java web serverlet_java_24

    

的一些细节

            1 请求转发(基于ServletContext)

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

            

java JxBrowser使用 java web serverlet_服务器_25

 

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

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

            

java JxBrowser使用 java web serverlet_服务器_26

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

                InputStream

                ResourceBundle

                ClassLoader

                 参看:day07_01_servlet/ServletDemo12