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. 8月3日奥威Power-BI V11 视频交流开课啦!

    ) 进群备注:奥威Power-BI V11 在QQ群上不见不散! 主题: Power-BI V11 基于EXCEL数据源快速制作管理驾驶舱 分享交流内容: 1.产品安装与配置(超级简单,傻瓜式安装) ...

  2. android自动填写短信验证码

    广播类 package com.examp.azuoyoutong.listner; import java.util.regex.Matcher;import java.util.regex.Pat ...

  3. RFS_关键字

    1.  关键字的参数中能带变量 [示例]: [运行结果]: 2. 关键字的参数中不能带关键字 [示例]: [运行结果]: 其他: (1) 关键字可以理解为高级语言中的“函数”

  4. oracle修改sys用户密码

  5. ajax get和post请求 后端接收并返回数据

    get请求$(function(){ //alert("23"); var x = "#page"; var y = "${ctx!}/static/ ...

  6. tcp/ip分片

    from http://blog.csdn.net/cumirror/article/details/5071234 前段时间要做一个关于网络嗅探的程序,里面要重组IP分片,TCP分片. 但做的时候忽 ...

  7. centos 6.4下设置输入法

    最近安装了centos,设置输入法步骤如下: 1)确定安装了Chinese support: : yum install "@Chinese Support" 2)输入法设置 在界 ...

  8. [Reprint]C++普通函数指针与成员函数指针实例解析

    这篇文章主要介绍了C++普通函数指针与成员函数指针,很重要的知识点,需要的朋友可以参考下   C++的函数指针(function pointer)是通过指向函数的指针间接调用函数.相信很多人对指向一般 ...

  9. URAL 1002 Phone Numbers(KMP+最短路orDP)

    In the present world you frequently meet a lot of call numbers and they are going to be longer and l ...

  10. JSon_零基础_006_将JSon格式的字符串转换为Java对象

    需求: 将JSon格式的字符串转换为Java对象. 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key ...