JavaWeb笔记

一、XML

1.1XML简介

1.1.1什么的XML

XML是可扩展的标记性语言

1.1.2XML的作用

xml 的主要作用有:
1、用来保存数据,而且这些数据具有自我描述性
2、它还可以做为项目或者模块的配置文件
3、还可以做为网络传输数据的格式(现在JSON为主)。

Student[id=1,name="张三"]
Student[id=2,nane="李四"]

students.xml
<students>
	<student>
		<id>1</id>
		<name>张三</name>
	</student>
	<student>
		<id>2</id>
		<nane>李四</name>
	</student>
</students>

1.2XML语法

1.2.1文档声明

<?xml version="1.0" encoding="utf-8”?>

就是文件声明
version 表示xmL的版本
encoding 表示xmL文件本身的编码

<?xml version="1.0" encoding="utf-8”?>
<books>< ! --books表示多个图书信息-->
	<book sn="SN123412123412">< !--book表示一个图书信息―sn属性表示图书序列号-->
		<name>时间简史</name>< ! -- name标签表示书名-->
		<author>霍金</author>< !-- author表示作者-->
		<price>75</price>< ! --price表示图书价格-->
	</book>
</books>

1.2.2XML注释

html和XML注释一样

1.2.3XML元素(标签)

什么是XML元素?

XML元素指的是从<且包括〉开始标签直到(且包括>结束标签的部分。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性

XML元素必须遵循以下命名规则:

  1. 名称可以含字母、数字以及其他的字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能以字符“xml”或者XML、xmL开始
  4. 名称不能包含空格

1.2.4xml属性

xml的标签属性和html 的标签属性是非常类似的,属性可以提供元素的额外信息

在标签上可以书写属性:
一个标签上可以书写多个属性。每个属性的值必须使用引号引起来。的规则和标签的书写规则一致。

<book id="SN12341234123" name="张三的犯罪"/>

1.2.5语法规则

  1. 所有XML元素都须有关闭标签(也就是闭合)
  2. XML标签对大小写敏感
  3. XML必须正确地嵌套
  4. XML文档必须有根元素且唯一
  5. XML的属性值须加引号
  6. 文本区域(CDATA区)
CDATA格式:
<!I[CDATA[云里可以把你输入的字符原样显示,不会解析xml ]]>

1.3XML解析技术

xml可扩展的标记语言。
不管是html文件还是xml文件它们都是标记型文档,都可以使用w3c组织制定的dom 技术来解析。
第三方的解析:
jdom在dom基础上进行了封装
dom4j又对jdom进行了封装
pull主要用在Android手机开发,是在跟sax非常类似都是事件机制解析xml文件。

1.3.1使用dom4j读取xml文件得到Document对象

由于dom4j 它不是sun公司的技术,而属于第三方公司的技术,我们需要使用dom4j就需要到dom4j官网下载dom4j的 jar包。

  1. 创建一个lib目录,并添加dom4j的jar包。并添加到类路径。
  2. 创建一个saxReader输入流,去读取xml配置文件,生成Document对象
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import org.junit.Test;

public class Dom4jTest {
	@Test
	public void test1( ) throws Exception {
		//创建一个saxReader输入流,去读取 xmL配置文件,生成Document对象
		SAXReader saxReader = new SAXReader();
		Document document = saxReader.read("src/books.xm1" );
	system.out.println(documenty);
	}
}

  1. 读取books.xmL文件生成Book类
@Test
public void test2( ) throws Exception{
	//1读取books .xmL文件
	SAXReader reader - new SAXReader( );
		//在Junit测试中,相对路径是从模块名开始算
	Document document = reader.read( "src/ books.xml");
	//2通过Document对象获取根元紊
	Element rootElement = document.getRootElement( );
		System.out.printLn( rootELement );
	//3通过根元紊获取book标签对象
		//element( )和eLements()都是通过标签名查找子元紊
	List <Element> books = rootElement.elements( "book" );
	//4遍历,处理每个book标签转换为Book类
	for (Element book : books) {
		// asXNL()把标签对象。转换为标签字符串
		System.out.println( book.asXML()):
		// getText();可以获取标签中的文本内容
		Element nameElement = book.element( "name" );
		String nameText = nameElement.getText();

}

二、Tomcat

2.1 JavaWeb

2.1.1 什么是JavaWeb

JavaWeb是指,所有通过Java语言编写可以通过浏览器访问的程序的总称,叫JavaWeb。JavaWeb是基于请求和响应来开发的。l

2.1.2 什么是请求

请求是指客户端给服务器发送数据,叫请求Request。

2.1.3 什么是请求

响应是指服务器给客户端回传数据,叫响应 Response

2.2 Web资源的分类

web资源按实现的技利和呈现的效果的不同,又分为静态资源和动态资源两种。

2.2.1 静态资源

html、css、js、txt、mp4视频,jpg图片

2.2.2 动态资源

jsp 页面、serviet程序

2.3 Tomcat

2.3.1 目录介绍

bin :专门用来存放Tomcat服务器的可执行程序
conf :专门用来存放Tocmat服务器的配置文件
lib :专门用来存放Tomcat服务器的jar包
logs :专门用来存放Tomcat服务器运行时输出的日记信息
temp :专门用来存放Tomcdat运行时产生的临时数据
webapps :专门用来存放部署的web工程。[
work :是Tomcat工作时的目录,用来存放Tomcat运行时jsp翻译为servlet 的源码,和session钝化的目录。

2.3.2 修改端口号

Mysql默认的端口号是:3306
Tomcat默认的端口号是:8080

找到Tomcat目录下的conf目录,找到 server.xml配置文件。
技到Connector标签,修改port属性为你需耍的端口号。
端口号范园:1 - 65535
修改完端口号,一定要重启Tomcat服务器才能生效

2.3.3 如何部暑web工程到Tomcat中

第一种方法:只需要把web工程的目录拷贝到Tomcat的 webapps目录下即可。|

第二种部署方法:
找到Tomcat下的conf目录\Catalina\localhost\下,创建如下的配置文件:

context表示一个工程上下文
path表示工程的访问路径:/ abc
docBase表示你的工程目录在哪里

<Context path="/abc" dobBase="E:\book”/>

2.3.4 动态web王程自录的介绍

src :日录存在自已编写的java源代码
web :目录专门用来存放web工程的资源文件。
比如: html页面
css文件
js文件等等

WEB-INF
:目录是一个受服务器保护的目录,浏览器无法直接访问到此目录的内容
web. xml :它是整个动态web工程的配置部署描述文件。可以在这些配置很多web工程的组件
比如:
Servlet程序
Filter过滤器
Listener监听器
Session超时
……

lib :目录用来存放第三方的jar 包。( IDEA还需要自己配置导

三、Servelt

3.1、Servelt技术

3.1.1什么是Servelt

1、servlet是JavaEE规范之一。规范就是接口
2、Servlet 就JavaWeb三大组件之一。三大组件分别是:serviet程序、Filter过滤器、Listener监听器。
3、Servlet 是运行在服务器上的一个 java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

3.1.2手动实现Servlet程序

1、编写一个类去实现servlet接口
2、实现service方法,处理请求,并响应数据
3、到web.xml中去配置servlet程序的访问地址

<! -- servlet标签给Tomcat配置servlet程序-->
<servlet>
	<! --servlet-name标签ServLet程序起一个别名(一般是类名)-->
	<servlet-name>Helloservlet</servlet-name>
	<! --servlet-class是Servlet程序的全类名-->
	<servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
</servlet>
	
<! --servLet-mapping标签给servlet程序配置访问地址-->
<servlet-mapping>
	<! --servLet-name标签的作用是告诉服务器,我当前配置的地址给哪个ServLet程序使用-->
	<servlet-name>Helloservlet</servlet-name>
	<! --urL-pattern标签配置访问地址<br/>
	<! -- / 斜杠在服务器解析的时候,表示地址为: http://ip: port/工程路径-->
	<! -- /hello 表示地址为: http: / /ip:port/工程路径/hello-->
	<url-pattern>/hello</url-pattern>
</servlet-mapping>

3.1.3Servlet的生命周期

1、执行Servlet构造器方法

2、执行init初始化方法

第一、二步,是在第一次访问的时候,创建servlet程序会调用。

3、执行service方法
第三步,每次访问都会调用。

4、执行destroy销毁方法
第四步,在web工程停止的时候调用。

3.2、ServletConfig类

3.2.1ServletConfig类的三大作用

servlet程序和servletConfig对象都是由Tomcat负责创建,我们负责使用。
Servlet程序默认是第一次访问的时候创建,servletConfig 是每个Servlet程序创建时,就创建一个对应的ServlietConfig对象。|

  1. 可以获取Servlet程序的别名servlet-name的值
  2. 获取初始化参数init-param
  3. 获取ServletContext对象

重写init方法时候要带上父类的init的方法,原因:重写继承的父类时,子类调用重写的方法时使用子类的方法,但config被封装在父类里了,如果不加super .init(config);就会形成空指针异常错误

@Override
public void init(Servletconfig config) throws ServletException {
	super .init(config);
	system.out.println(“重写了init初始化方法,做了一些工作");

3.3ServletContext类

3.3.1什么是ServletContext类

  1. ServletContext是一个接口,它表示Servlet上下文对象
  2. 一个web工程,只有一个ServletContext对象实例。
  3. ServletContext对象是一个域对象。

什么是域对象?
域对象,是可以像Map一样存取数据的对象,叫域对象。这里的域指的是存取数据的操作范围。

Name存数据取数据删除数据
Mapput()get()remove()
域对象setAttribute()getAttribute()removeAttribute()

3.3.2ServletContext类的4个作用

  1. 获取web.xml中配置的上下文参数context-param
  2. 获取当前的工程路径,格式:/工程路径
  3. 获取工程部署后在服务器硬盘上的绝对路径
  4. 像Map一样存取数据

3.4、HTTP协议

3.4.1、HTTP协议

所谓HTTP协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫 HTTP协议。
HTTP协议中的数据又叫报文。

3.4.2、Get请求的HTTP协议格式

客户端给服务器发送数据叫请求。
服务器给客户端回传数据叫响应。

1、请求行
(1)请求的方式 GET
(2)请求的资源路径[+?+请求参数]
(3)请求的协议的版本号 HTTP/1.1
2、请求头
key : value组成 不同的键值对,表示不同的含义。

Key作用
Accept告诉服务器,客户端可以接收的数据类型
Accept-Language告诉服务器客户端可以接收的语言类型
User-Agent浏览器的信息
Accept-Encoding告诉服务器,客户端可以接收的数据编码(压缩)格式
Host表示请求的服务器ip和端口号
Connection告诉服务器请求连接如何处理

3.4.3、POST请求的HTTP协议格式

1、请求行

(1)请求的方式 POST
(2)请求的资源路径[+?+请求参数]
(3)请求的协议的版本号 HTTP/1.1

2、请求头

(1)key : value 不同的请求头,有不同的含义
空行

3、请求体===>>>就是发送给服务器的数据|

3.4.4、哪些是GET请求,哪些是POST请求

GET请求有哪些:
1、form标签 method=get
2、a标签
3、link标签引入css
4、Script标签引入js文件
5、img标签引入图片
6、iframe引入html页面
7、在浏览器地址栏中输入地址后敲回车
POST请求有哪些:
8、form标签method=post

3.4.5、响应的HTTP协议格式

1、响应行
(1)响应的协议和版本号(2)响应状态码
(3)响应状态描述符
2、响应头
(1) key : value 不同的响应头,有其不同含义
空行
3、响应体---->>>就是回传给客户端的的数据
在这里插入图片描述

3.4.6、常见的响应码

200表示请求成功
301访问地址永久移动
302表示请求重定向
404表示请求服务器已经牧到了,但是你要的数据不存在(请求地址错误)
500服务器已经收到请求,但是服务器内部错误〈代码错误)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值