回顾:
xml: 可扩展标记语言

组成:

    文档声明:

    元素: 自定义

    属性:

    注释:

    转义符:

    字符区:

约束:

    dtd: 约束xml文件中标签的名称和次序

    schema: 可以进一步约束标签体内容的类型

解析xml:

dom4j  sax pull

1.导入jar包
2.创建SAXReader对象
SAXReader reader = new SAXReader();
3.获取xml文件的流信息(放在src目录下)
Document document = reader.read(is);
4.从dom中获取元素对象
Element rootEle = document.getRootElement(); // 获取根标签对象
rootEle.elements(); // 获取所有的子标签对象
rootEle.elements("标签名称"); //获取指定名称的子标签对象
rootEle.element("标签名称");
rootEle.getName(); // 获取标签的名称
rootEle.getText();
rootEle.elementText("子表签名称"); // 获取指定子标签体的文本信息
rootEle.attributeValue("属性名称"); // 获取当前标签上指定属性的值
Web服务器

WEB概念:

web资源:

    web 英文直译"网"的意思 ---->  泛指整个互联网环境

    资源:一切数据文件

    web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的数据文件

web资源的分类:

    静态的web资源:

        内容是一成不变的

        无论任何人,任何时间,任何地点访问同一个资源,该资源所展示的==效果==是一样的.

    动态的web资源:

        内容有可能在不同的时间或者不同的人访问的时候会发生改变的

web技术分类:

    静态的web技术:

        eg: html css  JavaScript 

    动态的web技术:

        eg: servlet  jsp

软件的架构: 结构

    网络中有很多的计算机,它们直接的信息交流,我们称之为:交互。 在互联网交互的过程的有两个非常典型的交互方式——B/S 交互模型和C/S 交互模型。

B/S 交互模型(B/S架构)

        就是浏览器和服务器交互模型。

C/S 交互模型(C/S架构)

        就是客户端和服务器交互模型       

相同点:

            1.都是基于请求和响应的

                请求: 浏览器发送给服务器的内容 ★

                响应: 服务器返回给浏览器的内容 ★

            2.必须先有请求后有响应

            3.一次请求对应一次响应,请求和响应必须成对出现.

不同点:

    c/s:需要客户下载客户端,页面比较炫,和服务器交互少,可以在客户端处理部分业务逻辑,可降低服务器的压力.需要维护客户端和服务器端

    b/s:只需要客户有一个浏览器,一切页面从服务器加载,和服务器交互频繁,由服务器处理业务逻辑,服务器压力较大.只需要维护服务器端.
    web服务器:

概述:

本质上就是一台提供服务的电脑,将我们编写好的web项目发布出去,别人就可以通过网络访问到我们的项目(资源)

我们给服务器安装了什么样的软件,就可以提供什么样的服务,我们管它叫什么什么服务器

常见的web服务器软件:

服务器软件名称 厂商 特点
Weblogic oracle 大型的收费的支持javaEE所有规范的web服务器(servlet和jsp)
websphere ibm 大型的收费的支持javaEE所有规范的web服务器(servlet和jsp)
JBoss JBoss 开源,支持JavaEE规范,占用内存、硬盘小,安全性和性能高
tomcat apache组织 小型的免费的支持servlet和jsp规范的"web服务器"

==Tomcat服务器★★★==

下载:

    http://tomcat.apache.org

    core:

        zip:可以在window上运行的(我们今天使用)

        tar.gz:运行在linux上的

安装:

安装路径不要有中文

    解压缩即可

目录结构

    bin:存放可执行的文件   

        批处理文件(*.bat)

    ★conf:存放配置文件

    lib:存放的是tomcat运行时和项目运行时必须的jar包

    logs:存放的是日志文件(catalina.out)

    temp:存放临时文件(不用管)

    ★★webapps:存放要发布的web项目

    ★work:存放项目运行时jsp转成的java文件和class文件

启动

    双击 tomcat目录下/bin/startup.bat

关闭

    方式1:点 x

    方式2:ctrl + c

    (记住)方式3:双击 tomcat目录下/bin/shutdown.bat

访问tomcat服务器的格式:

浏览器访问tomcat服务器的格式:

http://主机地址:端口号

http://127.0.0.1:8080

http://localhost:8080

http://192.168.134.56:8080/

    浏览器和服务器的数据交互需要遵循http协议

    tomcat服务器默认端口为 : 8080

    http默认访问端口 : 80 

    格式:http://ip地址:端口号  

    eg: http://localhost:8080

配置:常见问题
一闪而过:

        查看JAVA_HOME是否配置正确

    端口占用: 可以修改Tomcat的端口号

        修改 tomcat目录下/conf/server.xml 大约70行

             

        需要将 8080 修改成其他的端口号

        端口号:0~65535

            0~1024:系统预留的端口号 一般不要使用 但是可以使用80端口

            80端口是http协议的默认端口号,访问的时候可以不写端口号

==web项目==
目录结构:★

部署到tomcat服务器上的目录结构:

web项目本质上就是一个文件夹

    myweb: web项目名称

        |-- html

        |-- css js img ...

        |-- WEB-INF : 受保护的目录,通过浏览器不能访问该文件夹下的任何信息

            |-- lib: 存放当前项目所需要的第三方jar包

            |-- classes : web项目中java类编译后的class文件

            |-- web.xml : web项目的核心配置文件(servlet2.5之前是必须要有的,3.0以后可有可无)

项目访问路径:

    格式: http://主机地址:端口号/项目名称/资源的完整路径

        http://192.168.134.56:80/myweb/index.html

        http://192.168.134.56:80/myweb/html/index1.html

        http://192.168.134.56:80/myweb/WEB-INF/index2.html  

部署web项目到tomcat服务器

    方式1: 直接将项目放到tomcat的webapps目录下

    方式2:使用虚拟路径 (配置完毕后需要重启服务器)

        a:自定义项目存放位置

        b:更改tomcat配置文件(server.xml)

            在server.xml的最后添加

            写在Host标签中

              

            path: 浏览器访问时的项目(该名称和项目名称一致)

            docBase: 自定义项目存放的路径

    方式3:配置独立xml文件 (无需重启服务器自动加载和卸载项目)

        a:自定义项目存放位置

        b:在tomcat/conf/Catalina/localhost目录中配置xml文件

            

tomcat和idea整合
Servlet入门

接口: 制定规范

Servlet的概述:

Servlet就是运行在web服务器上的java程序,本质上就是一个java类.

==一个类要想通过浏览器被访问到,那么这个类就必须直接或间接的实现Servlet接口==    

==作用:==

接收浏览器的请求

处理请求

生成响应信息

Servlet入门★

Servlet2.5:

    1.编写一个类

        实现servlet接口

        重写Service(request,response)方法

    2.编写配置文件(web.xml)

        注册servlet

        绑定路径




ServletDemo1

com.itheima.servlet.ServletDemo1



ServletDemo1

/demo1

3.测试

        http://localhost:8080/项目名称/绑定路径

Servlet3.0:

    注解方式实现

    1.编写一个类

        实现servlet接口

        重写Service(request,response)方法

    2.在servlet类上添加  @WebServlet(name = "Demo" ,urlPatterns = "/demo")

        name: 起名称

        urlPatterns: 访问路径

Servlet API
接口: 制定规范
对象:Servlet:接口
方法/描述:(掌握★)init:初始化 --- (掌握★)service:提供服务 --- (掌握★)destroy:销毁 --- (理解)getServletConfig():获取当前Servlet的配置对象 --- (了解)getServletInfo():获取Servlet信息
对象:GenericServlet:(通用Servlet)
方法/描述:实现了servlet接口的抽象类,实现servlet中除service方法之外的所有方法
对象:HttpServlet:抽象类
方法/描述:继承GenericServlet,实现了Servlet的所有方法.
编写servlet的最终方式: 继承HttpServlet,重写doGet和doPost方法
Servlet执行流程
Servlet的生命周期★

从创建到死亡的过程

控制生命周期的三个方法:

    init:初始化

    service:提供服务

    destroy:销毁

面试题总结:

当浏览器第一次访问该servlet的时候,服务器会给我们创建该servlet的对象,并调用init()方法进行初始化,init()方法执行完毕后service方法会跟着执行.

以后再访问该servlet的时候,直接调用service()方法提供服务,并且是访问一次调用一次.(服务器不会再创建该servlet的对象,也不会调用init()方法进行初始化)

当服务器正常关闭的时候或项目从服务器中移除的时候,服务器会的调用destroy()方法,将该servlet的对象销毁

★: 不论访问多少次只有一个servlet对象

单实例,多线程