1 XML加强

XML加强

1)Dom4j修改XML文档

写出xml文档:

XMLWriter writer = new XMLWriter()

writer.wrtite(doc);

增加:

DocumentHelper.createDocument()  增加新文档

Element.addElement("name");  增加子标签

Element.addAtrribute(“name”,“value”) 增加属性

修改:

Attribute.setValue("value");  修改属性值

Element.setText("value");  修改文本内容

删除:

Element.detach();   删除标签

Attribute.detach();  删除属性

2)XPath技术: 快速找到xml元素(标签,属性,文本)

2.1 dom4j使用xpath:

List<Node> list = Element.selectNodes("xpath表达式");                    多个节点对象

Node node = Element.selectSingleNode("xpath表达式");         一个节点对象

xpath表达式:

/       表示根位置 或者  子标签

//      表示后代标签(不分层次结构)

*       表示所有元素

[ ]      表示条件

@      表示选择属性

text()    表示选择文本

and     表示与条件

3)SAX解析: 原理: 加载一点,解析一点,处理一点,对内存要求不高!!!(基于事件)

SAXPasser 类:

parser(File file, DefaultHandler handler):该方法使用sax解析方式去解析xml文档

DefaultHandler类:重写该类中的一些方法,用于处理xml文档

startElement( ....  String qName): 读到开始标签时调用

characterrs(char[] ch,int start,int length);  读到文本内容时调用(包括空格和换行)

endElement(.....String qName): 读到结束标签时调用

2 XML约束

2.1 引入

XML语法: 规范的xml文件的基本编写规则。(由w3c组织制定的)

XML约束: 规范XML文件数据内容格式的编写规则。(由开发者自行定义)

2.2 XML约束技术

DTD约束:语法相对简单,功能也相对简单。学习成本也低。

Schema约束:语法相对复杂,功能也相对强大。学习成本相对高!!!(名称空间)

2.3 DTD约束

1)导入dtd方式

内部导入

<!DOCTYPE note [

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to      (#PCDATA)>

<!ELEMENT from    (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body    (#PCDATA)>

]>

外部导入

本地文件系统:

<!DOCTYPE note SYSTEM "note.dtd">

公共的外部导入:

<!DOCTYPE 根元素 PUBLIC "http://gz.itcast.cn/itcast.dtd">

2)DTD语法

约束标签

<!ELEMENT 元素名称 类别>  或 <!ELEMENT 元素名称 (元素内容)>

类别:

空标签: EMPTY。 表示元素一定是空元素。

普通字符串: (#PCDATA)。表示元素的内容一定是普通字符串(不能含有子标签)。

任何内容: ANY。表示元素的内容可以是任意内容(包括子标签)

(元素内容):

顺序问题:

<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>: 按顺序出现子标签

次数问题:

标签   :  必须且只出现1次。

标签+  : 至少出现1次

标签*   : 0或n次。

标签?  : 0 或1次。

约束属性

<!ATTLIST 元素名称 属性名称 属性类型 默认值>

默认值:

#REQUIRED 属性值是必需的

#IMPLIED   属性不是必需的

#FIXED value 属性不是必须的,但属性值是固定的

属性类型:控制属性值的

CDATA :表示普通字符串

(en1|en2|..): 表示一定是任选其中的一个值

ID:表示在一个xml文档中该属性值必须唯一。值不能以数字开头

2.4 Schema约束

名称空间:告诉xml文档的哪个元素被哪个schema文档约束。 在一个xml文档中,不同的标签可以受到不同的schema文档的约束。

1)一个名称空间受到schema文档约束的情况

2)多个名称空间受到多个schema文档约束的情况

3)默认名称空间的情况

4)没有名称空间的情况

3 Web开发入门

3.1 引入

之前的程序: java桌面程序,控制台控制,socket gui界面。javase规范

现在和以后的程序:java web程序。浏览器控制。javaee规范

3.2 软件的结构

C/S (Client - Server  客户端-服务器端)

典型应用:QQ软件 ,飞秋,红蜘蛛。

特点:

1)必须下载特定的客户端程序。

2)服务器端升级,客户端升级。

B/S (Broswer -Server 浏览器端- 服务器端)

典型应用: 腾讯官方(www.qq.com)  163新闻网站, 传智官网(俗称:网站)

特点:

1)不需要安装特定的客户端(只需要安装浏览器即可!!)

2)服务器端升级,浏览器不需要升级!!!!

javaweb的程序就是b/s软件结构!!!

3.3 服务器

从物理上来说,服务器就是一台PC机器。8核,8G以上,T来计算,带宽100M

web服务器:PC机器安装一个具有web服务的软件,称之为web服务器

数据库服务器:PC机器安装一个具有数据管理件服务的软件,称之为数据库服务器。

邮件服务器:PC机器安装一个具有发送邮件服务的软件,称之为邮件服务器。

3.4 web服务软件

web服务软件的作用:把本地的资源共享给外部访问。

3.5 常见的市面上web服务软件

javase的规范,包含IO流,线程,集合,socket编程。。。。

WebLogic: BEA公司的产品。 收费的。支持JavaEE规范。

WebSphere: IBM公司的产品。收费的。支持JavaEE规范

JBoss: Redhat公司的产品。收费的。支持JavaEE规范

Tomcat: 开源组织Apache的产品。免费的。支持部分的JavaEE规范。(servlet、jsp。jdbc,但                                                                                                                      ejb, rmi不支持)

4 Tomcat基本使用

4.1 下载并按照

1)到apache官网。www.apache.org     http://jakarta.apache.org(产品的主页)

2)

安装版:window (exe、msi) linux(rmp)

压缩版:window(rar,zip) linux(tar,tar.gz)学习时候使用

3)运行和关闭tomcat

3.1 启动软件

a)找到%tomcat%/bin/startup.bat ,双击这个文件

b)弹出窗口,显示信息(不要关闭次窗口)

c)打开浏览器,输出以下地址

http://localhost:8080

d)看到一只猫画面,证明软件启动成功!

3.3 关闭软件

a)找到%tomcat%/bin/shutdown.bat,双击这个文件即可!

c)打开浏览器,输出以下地址。看到“无法连接”(最好先清空浏览器缓存)

4.2 tomcat软件使用的常见问题

1)闪退问题

原因:tomcat软件是java语言开发的。 tomcat软件启动时,会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。这个变量的作用找到tomcat启动所需的jvm。

解决办法; 到环境变量中设置JAVA_HOME的变量

JAVA_HOME= C:\Program Files\Java\jdk1.6.0_30  (注意别配置到bin目录下)

2)端口占用的错误

原因: tomcat启动所需的端口被其他软件占用了!

解决办法:

a)关闭其他软件程序,释放所需端口

b)修改tomcat软件所需端口

找到并修改%tomcat%/conf/server.xml文件

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

connectionTimeout="20000"

redirectPort="8443" />

3)CATALINA环境变量问题

原因: tomcat软件启动后,除了查找JAVA_HOME后,还会再查找一个叫CATALINA_HOME变量,这个变量的作用是设置tomcat的根目录。

解决办法:建议不要设置CATALINA_HOME变量。检查如果有的话,清除掉!!!

4.3 体验tomcat软件作用

webapps目录: tomcat共享目录。需要共享的本地资源放到此目录中。

4.4 URL

URL全名叫统一资源定位符,用于定位互联网的资源。

问题: http://localhost:8081/myweb/test.html  看到文件?

http://     协议。http协议。

localhost    域名。为了找到IP地址。

本地域名: localhost

外部域名:www.baidu.com

8081       端口。软件监听的

8080: tomcat默认的端口

3306:mysql数据库的端口

1521: orace数据库的端口。

/myweb:   web应用的名称。默认情况下,在webapps目录下找

/test.html  : 资源名称。

5 Tomcat的目录结构

|-bin: 存放tomcat的命令。

catalina.bat 命令:

startup.bat  -> catalina.bat start

shutdown.bat - > catalina.bat stop

|- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。

|-lib:支持tomcat软件运行的jar包。其中还有技术支持包,如servlet,jsp

|-logs:运行过程的日志信息

|-temp: 临时目录

|-webapps: 共享资源目录。web应用目录。(注意不能以单独的文件进行共享)

|-work: tomcat的运行目录。jsp运行时产生的临时文件就存放在这里

6 Web应用的目录结构

|- WebRoot :   web应用的根目录

|- 静态资源(html+css+js+image+vedio)

                                          |-
WEB-INF : 固定写法。

|-classes:
(可选)固定写法。存放class字节码文件

|-lib:
(可选)固定写法。存放jar包文件。

|-web.xml

注意:

1)WEB-INF目录里面的资源不能通过浏览器直接访问

2)如果希望访问到WEB-INF里面的资源,就必须把资源配置到一个叫web.xml的文件中。

练习:

1)在webapps下建立一个mybbs目录

2)创建两个文件

2.1
index.html  里面随便写内容     ,有超链接-连接到test.html

2.2
test.html   里面随便写

3)通过浏览器访问到。

7 手动开发动态资源

7.1
静态资源和动态资源的区别

静态资源:
当用户多次访问这个资源,资源的源代码永远不会改变的资源。

动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变。

7.2
动态资源的开发技术

Servlet
: 用java语言来编写动态资源的开发技术。

Servlet特点:

1)普通的java类,继承HttpServlet类,覆盖doGet方法

2)Servlet类只能交给tomcat服务器运行!!!!(开发者自己不能运行!!!)

Servlet手动编写步骤:

1)编写一个servlet程序,继承HttpServlet

/**

* 第一个servlet程序

* @author APPle

*

*/

public class HelloServlet
extends
HttpServlet{

@Override

protected void
doGet(HttpServletRequest req, HttpServletResponse resp)

throws
ServletException, IOException {

//解决中文乱码问题

resp.setContentType("text/html;charset=utf-8");

//向浏览器输出内容

resp.getWriter().write("这是第一个servlet程序。当前时间为:"+new
Date());

}

}

2)找到HelloServlet类的class字节码,然后把拷贝到tomcat的一个web应用中WEB-INF/classes目录下。

3)在当前web应用下的web.xml文件配置Servlet。

<!-- 配置一个servlet程序 -->

<servlet>

<!--
servlet的内部名称 ,可以自定义-->

<servlet-name>HelloServlet</servlet-name>

<!--
servlet类名: 包名+简单类名-->

<servlet-class>gz.itcast.d_servlet.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

<!--
servlet的内部名称,和上面的名称保持一致!!!-->

<servlet-name>HelloServlet</servlet-name>

<!--
servlet的访问名称: /名称 -->

<url-pattern>/hello</url-pattern>

</servlet-mapping>

4)启动tomcat服务器,运行访问

访问servlet: 
http://localhost:8080/myweb/ hello

8 工具开发动态资源

1)创建web project (javaweb工程)

2)在WebRoot下建立静态资源文件,

3)在src下建立动态资源文件

3.1 new -> Servlet( servlet的代码生成器)

3.2 写pacakge  -> class名 -> 修改mapping  url

4)关联tomcat服务器

4.1
window-> Preferences - > MyEcplise -> servers -> Tomcat 6.x (注意一定要enable)

5)部署web project应用。(拷贝web应用到tomcat的webapps目录下)

6)启动tomcat服务器

7)访问servlet

http://localhost:8081/day08_web/hello

总结:

web开发入门

1)web服务器作用:共享本地资源给外部访问

2)tomcat服务器:
基本操作

3)编写一个规范的web应用

4)如何编写一个动态资源(手动+工具)

7、XML加强/Web开发/Tomcat的更多相关文章

  1. XML与web开发-01- 在页面显示和 XML DOM 解析

    前言: 关于 xml 特点和基础知识,可以菜鸟教程进行学习:http://www.runoob.com/xml/xml-tutorial.html 本系列笔记,主要介绍 xml 在 web 开发时需要 ...

  2. Java Web开发Tomcat中三种部署项目的方法

    第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/hello" docBase ...

  3. Web开发——Tomcat的配置

    1.选择Tomcat 1.Apache官网http://apache.org/ 2.Tomcat官网http://tomcat.apache.org/ 3.Tomcat下载地址http://tomca ...

  4. 《Java Web开发实战》——Java工程师必备干货教材

    一年一度毕业季,又到了简历.offer漫天飞,失望与希望并存的时节.在IT行业,高校毕业生求职时,面临的第一道门槛就是技能与经验的考验,但学校往往更注重学生的理论知识,忽略了对学生实践能力的培养,因而 ...

  5. Java Web开发: Tomcat中部署项目的三种方法

    web开发,在tomcat中部署项目的方法: 可以参考http://m.blog.csdn.net/blog/u012516903/15741727 定义$CATALINA_HOME指的是Tomcat ...

  6. Web开发学习之路--Eclipse+Tomcat+mysql之初体验

    学习了一段时间android,正好要用到android和服务器之间的交互,既然要学习android,那么就涉猎下服务器端的开发了,以前学过php,用thinkphp很快可以搭建起来,但是android ...

  7. java web 开发入门 --- tomcat/servlet/jsp

    在做java web 开发时,要先安装tomcat.它是一个web服务器,也叫web容器,我们把写好的jsp, html页面放到它里面,然后启动它,就可以用浏览器访问这些页面,地址栏中输入localh ...

  8. 【Tomcat】面向初级 Web 开发人员的 Tomcat

    Apache Tomcat 应用服务器不再是高级 Web 系统开发人员的专用领域.在本教程中,Sing Li 将向初级 Web 开发人员展示如何利用他们当前的 Java™ 开发技能,使用 Tomcat ...

  9. Java Web开发中用Tomcat部署项目的三种方法

    第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/hello" docBase ...

随机推荐

  1. Android --账户注销

    参考博客:android如何实现注销功能 Intent logoutIntent=new Intent(SettingActivity.this,LoginActivity.class); //在执行 ...

  2. IDisplayTransformation

    IDisplayTransformation Bounds Full extent in world coordinates. The Bounds property controls the ful ...

  3. HTMLCanvasElement.toDataURL()

    HTMLCanvasElement.toDataURL() 方法返回一个包含图片展示的 data URI .可以使用 type 参数其类型,默认为 PNG 格式.图片的分辨率为96dpi. 如果画布的 ...

  4. php:mysqli扩展

    mysqli功能概述:http://php.net/manual/zh/mysqli.summary.php 代码(基本的用法):貌似可以防止sql注入 $root = "root" ...

  5. hibernate主键生成机制与save返回

    主键生成机制为assigned时,save之后通过get得不到id(主键),使用identity可以. hibernate主键生成机制1) assigned主键由外部程序负责生成,无需Hibernat ...

  6. PostgreSQL Replication之第九章 与pgpool一起工作(6)

    9.6 运行pgpool和流复制 pgpool也可以和除了语句级别的复制之外的流复制一起使用.一个完美的方案是使用PostgreSQL的板载复制和仅仅使用pgpool的负载均衡与连接池. 实际上,这样 ...

  7. Lintcode: Previous Permuation

    Given a list of integers, which denote a permutation. Find the previous permutation in ascending ord ...

  8. ShareSDKForANE 打包笔记

    最近做了一个ShareSDK IOS的接入 (ANE) , 现在想想其实很简单 不过由于对Xcode,ANE的不熟悉也折腾了好久, 舔着脸打扰客服好几天… 呵呵 目前把我接入的一些步骤列出来 希望能帮 ...

  9. nyist 604 小明的难题

    http://acm.nyist.net/JudgeOnline/problem.php?pid=604 小明的难题 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 ...

  10. 怎么在eclipse里调试WebDriver的源代码(转)

    当你看完WebDriver的工作原理这篇博客以后,是不是也跃跃欲试想印证文章里的理论是不是正确,想自己也看下webdriver的源代码,并且调试下,通过代码来更深入的了解WebDriver的工作原理. ...