回顾: 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行

			 <Connector port="8080" protocol="HTTP/1.1"

			   connectionTimeout="20000"

			   redirectPort="8443" />

		需要将 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标签中

			  <Context path="myweb1" docBase="F:\work\myweb1" />

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

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

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

		a:自定义项目存放位置

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

			<Context docBase="F:\work\myweb2" />

tomcat和idea整合 Servlet入门

接口: 制定规范

Servlet的概述:

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

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

==作用:==

接收浏览器的请求

处理请求

生成响应信息

Servlet入门★

Servlet2.5:

	1.编写一个类

		实现servlet接口

		重写Service(request,response)方法

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

		注册servlet

		绑定路径

<!--a.注册我们的servlet--> <servlet> <!-- 给我们的servlet起名称 --> <servlet-name>ServletDemo1</servlet-name> <!-- 告诉tomcat我们的servlet所在路径 全限定名(包名+类名) --> <servlet-class>com.itheima.servlet.ServletDemo1</servlet-class> </servlet> <!--b.为我们的servlet提供访问路径--> <servlet-mapping> <servlet-name>ServletDemo1</servlet-name> <!-- 设置浏览器访问的路径 路径自定义 --> <url-pattern>/demo1</url-pattern> </servlet-mapping> 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对象

单实例,多线程