zoukankan      html  css  js  c++  java
  • Javaweb学习笔记3—Serverlet

    今天来讲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.zipapache-tomcat-7.0.57-srcjavaorgapachecatalinaservlets

            一切都是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

  • 相关阅读:
    CAD中导入.pat文件
    使用solid works 助力NBA | 操作案例
    Java关键字---this的由来和其三大作用
    关于solid works中的:动态链接库(DLL)初始化例失败的解决方法
    基于51单片机的keli安装方法
    wintc的安装方法
    文件处理2
    文件处理1
    CAD绘制篮球教程
    数据分析之Numpy
  • 原文地址:https://www.cnblogs.com/jinfulin/p/4358603.html
Copyright © 2011-2022 走看看