目录
前置工作
创建一个javaweb5的Moudle模块
XML
什么是 xml?
xml 语法
xml入门
创建一个xml文件,来描述图书信息
xml 注释
元素(标签)
xml 属性
xml语法规则
XML命名空间(名称空间)
(回顾)URI、URL、URN的区别
XML命名空间示例
xml 解析技术介绍
dom4j 解析技术(重点)
Dom4j 类库的目录认识
Dom4j 类库的使用
编辑
使用测试类前的前置工作
解析xml文件,转换成java的Document对象
遍历标签,获取所有标签中的内容(重点)
Tomcat
JavaWeb 的概念
什么是请求和响应及两者关系
Web 资源的分类
Web资源通讯的三大要素
WEB服务器概念
软件架构
常见WEB服务器
Tomcat 服务器和 Servlet 版本的对应关系
Tomcat 的使用
Tomcat安装流程
Tomcat启动常见错误
Tomcat目录结构
Tomcat目录下部署Web工程两种方法
(方法一)部署Web工程到Tomcat的webapps目录下
(方法二)编写配置文件,用户访问URL时地址会被改成磁盘地址
(补充)File协议、Tomcat的ROOT工程访问与默认index.html
在浏览器网址输入File协议
Tomcat的ROOT工程访问与默认index.html
IDEA 中动态 web 工程的操作
IDEA 整合 Tomcat 服务器
IDEA 中如何创建动态 web 工程
Web 工程的目录介绍
(重要)在IDEA中给动态 web 工程添加额外 jar 包到类库的清晰讲解
(补充)"指定这个类库的jar包要给哪个模块使用"中,Scope在何种情况下要设置为provided,以及和scope设置为compile的区别
(重要)在 IDEA 中部署web工程到 Tomcat 上运行的详细讲解
热部署说明
说明:用idea的该方法创建web更快捷高效
说明:通过案例认识XML语法
java编程思想
华仔
9.9
葵花宝典
班长
5.5
浏览器也可以打开xml文件
在HTML同理(可以看完下面在做参考)
测试文件上传和下载
下载1.jpg
认识结构(参考下面的xml代码),其中:
beans是该xml文件的根元素、
"http://www.w3.org/2001/XMLSchema-instance"是一个"某个URI"、xmlns="http://www.springframework.org/schema/beans"是一个默认命名空间(他没有前缀名和冒号)、
XML命名空间的作用就是为了解决XML词汇的同名冲突和区分识别,值得注意的是:名称空间只存在逻辑意义,无法真正实现对URI的引用
命名空间一般声明在根元素(例如
命名空间声明的两种方式(隐形和显性):
显式名称空间声明:xmlns : 前缀名A = "某个URI"
声明命名空间的包容体里的元素使用时:<前缀名A:子元素 属性a="???">
默认名称空间声明:xmlns = "某个UI" (他没有前缀名)
声明命名空间的包容体里的元素使用时:<子元素 属性a="???">
<资料>
<设备 编号="联想6515b">
<生产商>联想集团生产商>
<地址>北京市中关村127号地址>
设备>
资料>
<资料>
<设备 编号="中联F001">
<生产商>中联重科生产商>
<地址>湖南省长沙市新开铺113号地址>
设备>
资料>
<资料 xmlns:IT="http://www.lenovo.com" xmlns:建筑="myURN:中联">
<设备 IT:编号="联想6515b" 建筑:编号="中联F001">
笔记本
联想集团
北京市中关村127号
<建筑:设备名>起重机建筑:设备名>
<建筑:生产商>中联重科建筑:生产商>
<建筑:地址>湖南省长沙市新开铺113号建筑:地址>
设备>
资料>
dom4j 第三方类库学习文档doc
dom4j 第三方类库lib目录
dom4j 第三方类库src目录
目的:解析xml文件,转换成java的Document对象进行操作
步骤:
在dom4j 第三方类库获取jar包,并拷贝到lib目录下
将jar包添加到自定义的名为"dom4j.1.6.1"类库中
http://t.csdn.cn/ONPJ2
开始解析的 books.xml 文件获取 Document 对象的代码
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import java.io.File;
/**本类是用dom4j获解析的 books.xml 文件获取 Document 对象的代码*/
public class ReadBooksXml {
@Test
public void test1() throws DocumentException {
// 要创建一个 Document 对象,需要我们先创建一个 SAXReader 对象
SAXReader saxReader = new SAXReader();
// 这个对象用于读取 xml 文件,然后返回一个 Document。这里传入相对路径,抛出可能找不到文件的DocumentException异常
Document document = saxReader.read(new File("E:\\JavaWeb\\javaweb5\\xml\\books.xml"));
// 打印到控制台,看看是否创建成功
System.out.println(document);//org.dom4j.tree.DefaultDocument@470e2030 [Document: name file:///E:/JavaWeb/javaweb5/xml/books.xml]
}
}
步骤:
代码演示
//遍历标签获取所有标签中的内容
@Test
public void test2() throws DocumentException {
//通过创建 SAXReader 对象。来读取 xml 文件,获取 Document 对象
Document document = new SAXReader().read(new File("E:\\JavaWeb\\javaweb5\\xml\\books.xml"));
//通过 Document 对象。拿到 XML 的根元素对象
Element rootElement = document.getRootElement();
System.out.println(rootElement.asXML());//public abstract String asXML()将当前元素转换成为 String 对象
System.out.println("------------------------------------");
/*
java编程思想
华仔
9.9
葵花宝典
班长
5.5
*/
//通过根元素对象。获取所有的 book 标签对象
List books = rootElement.elements("book");//Element.elements(标签名)它可以拿到当前元素下的指定的子元素的集合
//遍历每个 book 标签对象。然后获取到 book 标签对象内的每一个元素,
//方法1:
for(Element book : books) {
System.out.println(book.asXML());
}
System.out.println("------------------------------------");
/*
java编程思想
华仔
9.9
葵花宝典
班长
5.5
*/
//方法2
for (Element book : books) {
//加入判断条件是因为防止有些没有指定标签出现空指针异常
if(book.element("name")!=null && book.element("price")!=null && book.element("author")!=null){
// 拿到 book 下面的 name 元素对象
Element nameElement = book.element("name");
// 拿到 book 下面的 price 元素对象
Element priceElement = book.element("price");
// 拿到 book 下面的 author 元素对象
Element authorElement = book.element("author");
// 再通过 getText() 方法拿到起始标签和结束标签之间的文本内容
System.out.println("书名" + nameElement.getText() + " , 价格:"
+ priceElement.getText() + ", 作者:" + authorElement.getText());
}
}
/*
书名java编程思想 , 价格:9.9, 作者:华仔
书名葵花宝典 , 价格:5.5, 作者:班长
*/
}
结构:
在互联网中每个资源(html、css、js、img、png、video)都有一个唯一地址去标识该资源。
在互联网中每个资源(html、css、js、img、png、video)都有一个唯一地址去标识该资源。
URL全称Uniform Resource Locator(统一资源定位符)
协议://主机名:端口号/资源地址#片段名?参数列表
HTTP:
HTTP全称 Hypertext Transefer Protocol 超文本传输协议。
浏览器和服务器之间进行数据交互的协议。
详细可查看:
http://t.csdn.cn/feleF
http://t.csdn.cn/Ew3zs
Tomcat 5.5及以前的版本,我们都必须安装JDK,因为Tomcat Jasper需要使用JDK去编译jsp(翻译后的java文件),Tomcat 6的jasper在新的版本已经做了重新的设计。
以下是tomcat 6官方文档的一句话:
Tomcat 6.0 uses the Eclipse JDT Java compiler for compiling JSP pages. This means you no longer need to have the complete Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment (JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the binary Tomcat distributions. Tomcat can also be configured to use the compiler from the JDK to compile JSPs, or any other Java compiler supported
by Apache Ant.
也就是说,以后在生产机上安装tomcat的时候,不再需要去安装一个JDK了,只需要安装一个JRE就可以!原来的tomcat 5.0跟tomcat 5.5都需要JDK的支持!
Tomcat服务器下载、安装、配置环境变量教程
具体描述:
案例:浏览器访问 file:///E:/JavaWeb/web01-04/web/index.html
原理:通过file协议,浏览器直接读取file协议后面的磁盘路径,然后解析展示在浏览器中
原理:
说明:之前已经有教程教过怎么创建了,这里开始深究
说明:与“将jar包添加到自定义的名为"dom4j.1.6.1"类库中”效果一样,只是该方法更加详细
为web项目添加Artifact的配置
说明:artifact:编译后的Java类,Web资源等的整合,用以测试、部署等工作。
某个XXXmodule要如何打包,例如 war exploded、war、jar、ear等等这种打包形式。某个module有了Artifacts就可以部署到应用服务器中了。
说明:该补充知识对后面的Maven中的Pom.xml作用很大
解释:
举例:
$liferay-tomcat-home\webapps\ROOT\WEB-INF\lib
下发现,里面已经有了一个portal-impl.jar了,换句话说,容器已经提供了这个artifact对应的jar,所以,我们在运行阶段,这个C1类直接可以用容器提供的portal-impl.jar中的B1类,而不会出任何问题。实际插件行为:
Scope有四种值,分别为:
如果是web中的内容发生更新,那么使用 Update resources 就可以了
如果是java类(src目录)的内容发生,那么就使用Update classes and resources就可以了
文件web目录发生改变,那么就要把out目录下的artifacts目录删掉,然后再点击Redeploy部署,那么就会自动编译并且重新部署
文件src目录发生改变,那么就要把out目录下的production目录删掉,然后再点击Redeploy重新部署,那么就会自动编译并且重新部署
最方便的办法就是直接把out目录删除,然后再点击Redeploy部署,那么就会自动编译并且重新部署,但是性能较慢,因为要重新编译部署大量文件,性能很慢