xml的组成元素
Xml文件的组成部分包括:文档声明、元素、元素的属性、注释、CDATA区、特殊字符、处理指令(PI:Processing Instruction)。
文档声明:必须在首行首列,属性有version(必须)、encoding、standalone;
元素:指从开始标签到结束标签的部分;
属性:元素可以在开始标签中定义属性,属性的值必须存在并且用引号引起来;
注释:被注释的xml部分不会被显示;
CDATA区:在CDATA 区中的文本会被解析器忽略;
特殊字符:在xml中出现的特殊字符需要转义;
PI指令:引入外部的css。
xml文档声明是<?xml version="1.0"?>必须从xml文档的第1行第1列开始;
xml文档有且仅有一个跟标签;
xml文档可以没有约束。
.一个xml文档中只能引入一个DTD约束.
web目录
Web项目编译部署完成后,.class文件会存放在 WBE-INF/classes/ 目录下,依赖jar包会存放在 WEB-INF/lib/ 目录下;
web.xml文件是存放在 WEB-INF/ 目录下的,java源文件是在 编译前的 web项目的src 目录中
3.C/S结构的软件,有一大部分的静态资源是随着客户端安装在本地电脑上的
B/S结构的软件,所有的资源都需要从服务器获取,
所以C/S结构的软件服务器相比于B/S结构的软件服务器,压力较小一些,而一个电脑要作为服务器使用,一般配置需要高一些,提供更快的响应速度和更高的并发请求,在一台电脑上安装一个web服务器软件,比如tomcat,这个电脑就可以变为web服务器。
tomcat的目录
webapps存放的是tomcat运行的项目;
work存放的是JSP转换的java文件及class文件;
servletContext域对象的使用
往域对象中存储数据: setAttribute();
从域对象中取数据: getAttribute();
从域对象中移除数据: removeAttribute
servletContext对象只能获取全局初始化参数。servletConfig对象可以获取局部初始化参数
servletContext域对象的作用范围是同一个应用中所有用户,所有请求共享数据,是与应用共生的。
request域对象使用
request对象的setAttribute()方法将数据保存到request域对象对象中,
request对象的getAttribute()方法将保存到request对象中数据根据名称取出,
request对象的getSession()方法用于获取session对象,
request对象的getMethod()方法用于获取请求方式。
演示servlet的执行过程
实例化Servlet的时候,执行init()方法,而默认是第一次请求servlet创建Servlet,也就是第一次访问会执行并且只执行一次init()方法; 只有在Servlet销毁的时候才会执行destroy()方法,;每次访问Servlet都会执行service()方法.
1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。
3. 如果有,则在找到对应的<servlet-class>全类名
4. tomcat会将字节码文件加载进内存,并且创建其对象
5. 调用其service方法
浏览器的类型可以通过HTTP的User-Agent请求头来获取,获取请求头的方法是getHeader
常见的响应状态码:
200请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态;
302 请求重定向;
304 访问缓存;
404 请求资源不存在;
500 服务器内部错误。
乱码问题
tomcat8及以上版本GET请求不会乱码, 但是POST请求还是可能会乱码。
get方式提交的数据在请求行的url后面,在地址栏上其实就已经进行了一次URL的编码了;解决方案:将存入到request缓冲区中的值以ISO-8859-1的方式获取到,以UTF-8的方式进行解码。
post方式提交的数据是在请求体中,request对象接收到数据之后,放入request的缓冲区中。缓冲区就有编码(默认ISO-8859-1:不支持中文);解决方案:将request的缓冲区的编码修改了即可。 |
|