XML可扩展标记语言
组成部分
1. 文档声明
1. 格式:<?xml 属性列表?>
2. 属性列表:
version 版本号 encoding编码方式 standalone 是否独立 yes不依赖其他文 件 No依赖其他文件
2.文本 cdata区:在该区域中的数据会被原样展示 格式<![CDATA[]]>
约束 DTD: 一种简单的约束技术
Schema:一种复杂的约束技术
3解析 操作xml文档,将文档中的数据读取到内存中
常用方式 1 dom 将标记语言一次加载进内存,在内存形成一个dom树
优点 方便可以增删改 缺点 占内存
2 :SAX 逐行读取,基于事件驱动的。 不占内存 只能读取,不能增删改。
4:常用的解析器
1:JAXP:支持dom和sax
2: DOM4J:
3:Jsoup:
获取path
String path=JsoupDeom1.class.getClassLoader().getResource(“student.xml”).getPath();
解析 Document doc=Jsoup.parse(new FIle(path),”utf-8”);
获取元素对象 element Elements ele=document.getELementsByTag(“name”);数组
获取内容 String name=ele.get(0).text();
4:Pull Android操作系统内置的解析器,sax
对象的使用:
1. Jsoup:工具类,可以解析html或xml文档,返回Document
parse:解析html或xml文档,返回Document
parse(File in, String charsetName):解析xml或html文件的。
parse(String html):解析xml或html字符串
parse(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
2. Document:文档对象。代表内存中的dom树
获取Element对象
getElementById(String id):根据id属性值获取唯一的element对象
getElementsByTag(String tagName):根据标签名称获取元素对象集合
getElementsByAttribute(String key):根据属性名称获取元素对象集合
getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合
3. Elements:元素Element对象的集合。可以当做 ArrayList<Element>来使用
4. Element:元素对象
1. 获取子元素对象
getElementById(String id):根据id属性值获取唯一的element对象
getElementsByTag(String tagName):根据标签名称获取元素对象集合
getElementsByAttribute(String key):根据属性名称获取元素对象集合
getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合
2. 获取属性值
String attr(String key):根据属性名称获取属性值
3. 获取文本内容
String text():获取文本内容
String html():获取标签体的所有内容(包括字标签的字符串内容)
5. Node:节点对象
是Document和Element的父类
快捷查询方式:
1. selector:选择器
使用的方法:Elements select(String cssQuery)
HTTP 超文本传输协议
请求消息数据格式
1:请求行 请求方式 请求URL 请求协议/版本\
2: 请求头 user-Agent:服务器版本信息
Referer: 告诉服务器我从哪里来 作用防盗链;统计工作.
3: 请求空行
4:请求体 封装post请求消息的请求参数的
Request
请求行 1获取请求方式 getMethod()
2 获取虚拟路径 getContextPath()
3 获取servlet路径 getServletPath()
4 获取get方式请求参数 getQueryString()
5 获取请求URI getRequestURI() 统一资源标识符
StringBuffer getRequestURL()同一资源定位符
6获取协议及版本:getProtocol()
7 获得客户机的IP地址:getRemoteAddr()
请求头 getHeader(String name);通过请求头的名称获取请求头的值
Enumetatio<String>getHeaderNames()获取所有的请求头名称
请求体
获取流对象
BufferedReader getReader(): 获取字符输入流,只能操作字符数据
ServletInputStream getInputStream() 获取字节输入流。可以操作所有类型 的数据
通用功能
1String getParameter(String name) 根据参数名称获取参数值
2 String []getParameterValues(String name) 根据名称获取参数值的数组
3. Enumeration<String> getParameterNames():获取所有请求的参数名称
4. Map<String,String[]> getParameterMap():获取所有参数的map集合
request.setCharacterEncoding("utf-8"); request乱码的处理
Reponse
1响应行
1 组成 :协议/版本 响应状态码 状态码描述
2响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。
1xx 服务器接收客户端消息,但没有接收完成 ,等待一段时间发送1XX状态码
2XX 代表成功
3xx 重定向(302) ,(访问缓存)304
4xx 客户端错误
(404)请求路径没有对应的资源
(405)请求方式没有对应的doxxx方法。
5XX 服务器错误 (500) 服务器内部出现异常
2响应头
content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
content-disposition 服务器告诉客户端以什么格式打开响应体数据
in-line默认值 在当前页面内打开
attachment;filename=xxx:以附件形式打开响应体。 文件下载使用
Responsed对象
1:设置响应行
1. 格式:HTTP/1.1 200 ok
2 设置状态码: setstatus(int sc)
2:设置响应头:setHeather(String name, String value)
3:设置响应体:
获取输出流 PrintWriter getWriter() 字符输出流
ServletOutputStream getOutputStream()
服务器输出字符数据到浏览器
乱码的设置 response.setContentType(“text/html;charset=utf-8”);
ServletContext对象 代表整个web应用
1 获取 this.getServletContext();
2 获取MIME类型: 在互联网通信过程中定义的一种文件数据类型
String getMimeType(String file)
3 获取真实(服务器)路径
String getRealPath(String path)
String b=context.getRealPath(“/b.txt”); web 目录下资源访问
E:\java\basic_code\out\artifacts\it_cast_web_war_exploded\b.txt
String b=context.getRealPath(“/WWB-INF/a.txt”); web 目录下资源访问
|
|