XML约束

XML约束要求:大家能够看懂约束内容,根据约束内容写出符合规则的xml文件。

2.1 引入

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

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

2.2 XML约束技术

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

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

2.3 DTD约束

1)导入dtd方式

内部导入

  1. <!DOCTYPE note [
  2. <!ELEMENT note (to,from,heading,body)>
  3. <!ELEMENT to (#PCDATA)>
  4. <!ELEMENT from (#PCDATA)>
  5. <!ELEMENT heading (#PCDATA)>
  6. <!ELEMENT body (#PCDATA)>
  7. ]>

外部导入本地文件系统:

  1. <!DOCTYPE note SYSTEM "note.dtd">

  公共的外部导入:

  1. <!DOCTYPE 根元素 PUBLIC "http://gz.itcast.cn/itcast.dtd">
  1. 2DTD语法
  2. 约束标签
  3. <!ELEMENT 元素名称 类别> <!ELEMENT 元素名称 (元素内容)>
  4.  
  5. 类别:
  6. 空标签: EMPTY 表示元素一定是空元素。
  7. 普通字符串: (#PCDATA)。表示元素的内容一定是普通字符串(不能含有子标签)。
  8. 任何内容: ANY。表示元素的内容可以是任意内容(包括子标签)
  9.  
  10. (元素内容):
  11. 顺序问题:
  12. <!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>: 按顺序出现子标签
  13.  
  14. 次数问题:
  15. 标签 必须且只出现1次。
  16. 标签+ 至少出现1
  17. 标签* 0n次。
  18. 标签? 0 1次。
  19. 约束属性
  20. <!ATTLIST 元素名称 属性名称 属性类型 默认值>
  21.  
  22. 默认值:
  23. #REQUIRED 属性值是必需的
  24. #IMPLIED 属性不是必需的
  25. #FIXED value 属性不是必须的,但属性值是固定的
  26.  
  27. 属性类型:控制属性值的
  28. CDATA :表示普通字符串
  29. (en1|en2|..): 表示一定是任选其中的一个值
  30. ID:表示在一个xml文档中该属性值必须唯一。值不能以数字开头

2.4 Schema约束

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

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

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

3)默认名称空间的情况

4)没有名称空间的情况

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文件

  1. <Connector port="8081" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. 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的目录结构

  1. |-bin: 存放tomcat的命令。
  2. catalina.bat 命令:
  3. startup.bat -> catalina.bat start
  4. shutdown.bat - > catalina.bat stop
  5. |- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。
  6. |-lib:支持tomcat软件运行的jar包。其中还有技术支持包,如servletjsp
  7. |-logs:运行过程的日志信息
  8. |-temp: 临时目录
  9. |-webapps 共享资源目录。web应用目录。(注意不能以单独的文件进行共享)
  10. |-work tomcat的运行目录。jsp运行时产生的临时文件就存放在这里

6 Web应用的目录结构

  1. |- WebRoot : web应用的根目录
  2. |- 静态资源(html+css+js+image+vedio
  3. |- WEB-INF 固定写法。
  4. |-classes (可选)固定写法。存放class字节码文件
  5. |-lib (可选)固定写法。存放jar包文件。
  6. |-web.xml                                               

注意:

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

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

7.手动开发动态资源

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

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

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

7.2 动态资源的开发技术

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

Servlet特点:

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

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

Servlet手动编写步骤:

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

  1. /**
  2. * 第一个servlet程序
  3. * @author APPle
  4. *
  5. */
  6. public class HelloServlet extends HttpServlet{
  7.  
  8. @Override
  9. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  10. throws ServletException, IOException {
  11. //解决中文乱码问题
  12. resp.setContentType("text/html;charset=utf-8");
  13. //向浏览器输出内容
  14. resp.getWriter().write("这是第一个servlet程序。当前时间为:"+new Date());
  15. }
  16. }

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

        myeclipse中用于完成这个任务

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

        在myeclipse中,这一步在创建servlet的时候可以默认配置

  1. <!-- 配置一个servlet程序 -->
  2. <servlet>
  3. <!-- servlet的内部名称 ,可以自定义-->
  4. <servlet-name>HelloServlet</servlet-name>
  5. <!-- servlet类名: 包名+简单类名-->
  6. <servlet-class>gz.itcast.d_servlet.HelloServlet</servlet-class>
  7. </servlet>
  8.  
  9. <servlet-mapping>
  10. <!-- servlet的内部名称,和上面的名称保持一致!!!-->
  11. <servlet-name>HelloServlet</servlet-name>
  12. <!-- servlet的访问名称: /名称 -->
  13. <url-pattern>/hello</url-pattern>
  14. </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

day8 服务器的更多相关文章

  1. Catalyst揭秘 Day8 Final 外部数据源和缓存系统

    Catalyst揭秘 Day8 Final 外部数据源和缓存系统 今天是Catalyst部分的收官,主要讲一些杂项内容. 外部数据源处理 什么叫外部数据源,是SparkSql自己支持的一些文件格式,以 ...

  2. Python之路,Day8 - Socket编程进阶

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  3. Day8 - Python网络编程 Socket编程

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  4. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  5. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  6. 闲来无聊,研究一下Web服务器 的源程序

    web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机.这个浏览器程序是一个简单的电话号码查询软件.最初的web服务器程序就是一个利用浏览器和web服 ...

  7. SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]

    目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...

  8. 使用 Nodejs 搭建简单的Web服务器

    使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块. ...

  9. 通过ProGet搭建一个内部的Nuget服务器

    .NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以 ...

随机推荐

  1. Android Studio .9图片的应用以及制作

    参考http://www.jianshu.com/p/761f4d0e5d8d 先找到图片右键 然后修改图片名称,选择目录,注意必须要放在drawable目录里面,不然引用studio会报错 然后进入 ...

  2. 基于EasyNVR二次开发实现自己的摄像机IPC/NVR无插件化直播解决方案

    在之前的博客中<基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控>,我们已经比较多的描述EasyNVR所实现的功能,这些也在方案地址:http://www.eas ...

  3. python中的raw字符串

    在正则表达式的字符串前面加上r表示这个是一个raw字符串,只以正则表达式的元字符进行解析,不用理会ascii的特殊字符.

  4. mooc课程mit 6.00.1x--problem set3解决方法

    RADIATION EXPOSURE 挺简单的一道题,计算函数和算法过程都已经给出,做一个迭代计算就行了. def radiationExposure(start, stop, step): ''' ...

  5. Linux 日志命令

    当日志文件存储日志很大时,我们就不能用vi直接进去查看日志,需要Linux的命令去完成我们的查看任务 Log位置: /var/log/message 系统启动后的信息和错误日志,是Red Hat Li ...

  6. client网络优化方法

    减小图片大小(使用WebP格式的图片)  大部分的Facebook应用数据都是图片,因此降低图片的大小就能够较少数据的下载量.从而加快下载速度,这一点在高延迟的网络环境下很重要.Facebook返回给 ...

  7. 【shell】常用的正则表达式

    一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9 ...

  8. GDB调试core文件(2)

    使用gdb和core dump迅速定位段错误 关键字:gdb.段错误.core dump 一.什么是core dump core:内存.核心的意思: dump:抛出,扔出: core dump:前提: ...

  9. consider increasing the maximum size of the cache.

    虚拟机上搭建jenkins,出现unable to free [10] percent of the cache for Context [/jenkins] 提示让我加大缓存 consider in ...

  10. JAVA-配置path环境

    配置path环境变量变的目的是什么? 控制台可以在任意的路径下都可以找到java的开发工具. 为了说明几个JDK环境变量的作用,这里先给出环境变量的定义 环境变量: 环境变量一般是指在操作系统中用来指 ...