《《XML编程技术》马可课程设计报告.doc》由会员分享,可在线阅读,更多相关《《XML编程技术》马可课程设计报告.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 test Robert_34_small.jpg 2011-11-03 10:30 上午 Robert test1 sun_93_sun.jpg 2011-11-04 13:30 下午 sun jxf Robert_81_test.jpg 2011-11-03 19:30 下午 Robert 3、messages.xml:用来保存用户的留言信息 test My Messages 2011-11-04 12:20 下午 Robert 4、comments.xml:用来保存用户对相片的评论信息 123 RL_35_Winter.jpg 2011-11-03 10:18 下午 RL good Ro
2、bert_34_small.jpg 2011-11-03 10:43 下午 Robert 二、账户管理模块的设计为了保证系统的安全性,用户只有登录后才可以对系统进行操作,因此需要对用户登录信息验证,用户登录又分为管理员和普通用户,不同身份系统将给予不同权限。1、管理员登录输入账号密码把信息提交给DoLogin.Jsp 代码如下2、注册账号注册新用户信息将被存到users.xml中由register()完成 代码如下%UserAdmin.setRootPath(application.getRealPath(/data/); String sex = request.getParameter(s
3、ex); if (sex.equals(2) sex = female; else sex = male; if (UserAdmin.register(request.getParameter(account), request.getParameter(pwd), request.getParameter(name), sex, request.getParameter(age), request.getParameter(tel), request.getParameter(address), request.getParameter(email) out.print(注册账号);out
4、.print();out.print( 注册成功!); else out.print(注册账号);out.print();out.print( 注册失败!);%3、修改账号信息用户在页面中修改账号信息单击保存按钮,把修改的信息保存到users.xml中,该操作由modify()完成,其代码如下%UserAdmin.setRootPath(application.getRealPath(/data/); String myUID = (String)session.getAttribute(UID); String sex = request.getParameter(sex); if (sex
5、.equals(2) sex = female; else sex = male; if (UserAdmin.modify(myUID, request.getParameter(pwd), request.getParameter(name), sex, request.getParameter(age), request.getParameter(tel), request.getParameter(address), request.getParameter(email) out.print(修改帐号);out.print(body);out.print( 修改成功!); else o
6、ut.print(修改帐号);out.print();out.print( 修改失败!);%一、 相片管理模块的设计登陆后可以上传和浏览评论照片,为了保护隐私用户之间不能互相访问。1、 上传相片单击上传 如图代码upload() 如下 标题: 2、浏览相片由browsephoto()完成 代码如下 相片 浏览照片 % String uid = (String)session.getAttribute(UID); pictureAdmin.setRootPath(application.getRealPath(/data/); Vector pictures = pictureAdmin.get
7、Pictures(uid); int i = 0; while(i % /每行2列 for(int j=0;j2;j+,i+) if (i 标题: a href=photodetails.jsp?filename=&title= target=mainFrameimg src=./upload_img/small/ 用户名: 时间: % /if (picture!=null) /if (ipictures.size() /for(int j=0;j 二、 留言管理模块的设计用户登录后可以添加和浏览留言,并可以删除自己发表的留言。1、添加留言输入标题和内容单击提交按钮把信息保存到message.
8、xml中这个操作由addmessage()完成 代码如下% String uid = (String)session.getAttribute(UID); String title = request.getParameter(title); String content = request.getParameter(content); if (uid=null) | (title=null) | (content=null) out.print(添加留言); out.print(); out.print( 添加失败,无效的系统参数!); else message.setTitle(title
9、); message.setContent(content); message.setUser(uid); messageAdmin.setRootPath(application.getRealPath(/data/); if (messageAdmin.add(message) /添加成功,重新显示留言页面 response.sendRedirect(msg.jsp); else out.print(添加留言); out.print(); out.print( MessageAmin添加失败!); %2、 删除留言单击删除留言由removemsg()完成 用户留言 用户留言 % messa
10、geAdmin.setRootPath(application.getRealPath(/data/); Vector messages = messageAdmin.getMessages(); for(int i=0;i 标题: a href=./messages/Doremovemsg.jsp?index= 删除 时间: 用户: 五、简介XML代表Extensible Markup Language(eXtensible Markup Language的缩写,意为可扩展的标记语言)。与HTML相似,XML是一种显示数据的标记语言,它能使数据通过网络无障碍地进行传输,并显示在用户的浏览器上
11、。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。XML是元标记语言关于XML要理解的第一件事是,它不只是像超文本标记语言(Hypertext Markup Language,HTML)或是格式化的程序。这些语言定义了一套固定的标记,用来描述一定数目的元素。如果标记语言中没有所需的标记,用户也就没有办法了。这时只好等待标记语言的下一个版本,希望在新版本中能够包括所需的标记,但是这样一来就得依赖于软件开发商的选择了。但是XML是一种元标记语言。用户可以定义自己需要的标记。这
12、些标记必须根据某些通用的原理来创建,但是在标记的意义上,也具有相当的灵活性。例如,假如用户正在处理与家谱有关的事情,需要描述人的出生、死亡、埋葬地、家庭、结婚、离婚等,这就必须创建用于每项的标记。新创建的标记可在文档类型定义(Document Type Definition,在以后的篇幅中常简称为DTD)中加以描述。在本书的第二部分中将会学到有关DTD的更多的知识。现在,只需把DTD看作是一本词汇表和某类文档的句法。例如,在Peter Murray-Rust的Chemical Markup Language (化学标记语言,简写为CML)中的MOL.DTD文件中描述了词汇表和分子科学的句法:其
13、中包括chemistry(化学)、crystallography(结晶学)、solid state physics(固体物理)等词汇。它包括用于atoms(原子)、molecules(分子)、bonds(化学键)、spectra(光谱)等的标记。这个DTD可与分子科学领域中的许多不同的人共享。对于其他领域也有其他的DTD,用户还可以创建自己的DTD。XML定义了一套元句法,与特定领域有关的标记语言(如MusicML、MathML和CML)都必须遵守。如果一个应用程序可以理解这一元句法,那么它也就自动地能够理解所有的由此元语言建立起来的语言。浏览器不必事先了解多种不同的标记语言使用的每个标记。事
14、实是,浏览器在读入文档或是它的DTD时才了解了给定文档使用的标记。关于如何显示这些标记的内容的详细指令是附加在文档上的另外的样式单提供的。例如,考虑薛定格(Schrodinger)方程:科学论文中充满了这一类方程,但是科学家还必须等待多年,才能让浏览器的开发商支持书写最基本的数学公式所需的标记。音乐家也有同样的局限性,因为Netscape Navigator和Internet Explorer还都不支持乐谱。有了XML就意味着不必等待浏览器的开发商来满足用户的需要了。用户可以创建自己需要的标记,当需要时,告诉浏览器如何显示这些标记就可以了。XML标记描述的是文档的结构和意义。它不描述页面元素的
15、格式化。可用样式单为文档增加格式化信息。文档本身只说明文档包括什么标记,而不是说明文档看起来是什么样的。XML 的起源和目的 1 9 9 6 年,万维网协会(或者叫W 3 C ,h t t p : / / w w w. w 3 c . o rg )开始设计一种可扩展的标记语言,使其能够将S G M L 的灵活性和强大功能与已经被广泛采用的H T M L 结合起来。这种后来变成X M L 的语言继承了S G M L 的规范,而且实际上就是后者的一个子集。从S G M L 入手使得该设计小组能够将精力集中在简化已有的成果上。S G M L 已经提供了一种可以无限扩展的语言,它允许任何人能够根据自己
16、的需要加以扩充。X M L 之所以要较S G M L 更为简化,很大程度上是出于易用性的考虑:人们对标记的读写过程应该使用现有的、简便通用的工具,同时,我们也应当简化计算机对文档和数据交换的处理。由于有太多的可选功能,S G M L 变得过于复杂,以至于很难编写出针对这种语言的普通解释器,而X M L 的解释器则简单得多。此外,X M L 使得现有的I n t e r n e t协议和软件更为协调,从而简化了数据处理和传输。作为一个不错的S G M L 子集,X M L 还保持了对现有的面向S G M L 的系统的向下兼容性,这样,用X M L 标记过的数据就仍然可以在这些系统中使用,为基于S
17、 G M L 的行业节省了大笔的改造费用,同时,与We b 的结合也使得它们更便于被访问。1998 年2 月,XML 1.0 成为了W3C 的推荐标准。包括Extended Backus-Naur Form (EBNF) 中语法标识在内的这个正式的规范可以很容易地从W 3 C 的We b 站点(h t t p : / / w w w. w 3 c . o rg / T R / R E C - x m l )上得到;此外,X M L 规范的制定者之一Tim Bray 还在h t t p : / / w w w. x m l . c o m / a x m l / t e s t a x m l
18、. h t m 上提供了一个有着非常不错的注解的版本。在http:/www.ucc.ie/xml/上,由Peter Flynn 等人代表W3C 的XML 研究组维护的一个XML 1.0FAQ 还提供了到其他与XML 相关的主题的链接。X M L 是一种界定文本数据的简便而标准的方法。它曾经被人称作“We b 上的A S C I I 码”。就好像你可以使用自己喜爱的编程语言来创建任何一种数据结构,然后同其他人在其他计算平台上使用的其他语言来共享一样。X M L 的标记用来说明你所描述的概念,而属性则用来控制它们的结构。所以,你可以定义自己所设计出的语法并同其他人共享。 XML的特点:1 使用有意
19、义的标记(TAG)HTML:给浏览器读取,不能传达数据的语义。XML:具有语义。2 数据的语义与显示方式分开HTML:决定数据显示方式的语言。XML:描述数据内容的语言,本身并不决定数据该如何显示,数据的显示由XSL决定。3 可自定义的标记HTML:标记由少数权威团体制定,种类有限且不能随意添加。XML:可由用户按需要增加标记。如数学标记语言MATHML、财经标记语言FPML、电子商务标记语言EBXML等。4 严格的语法控制HTML:语法规则比较多元化,具有较大灵活性。文件结构比较松散,不能很容易的转换为其他类型格式,比较难用程序来做大量而有效的处理,数据再利用的潜力大为降低。XML:对语法有严格的要求,所有XML的文件都必须经过严格的“验证”过程才算完成,文件格式容易转换。XML的优点1.XML允许各种不同的专业(如音乐、化学、数学等)开发与自己的特定领域有关的标记语言。这就使得该领域中的人们可以交换笔记、数据和信息,而不用担心接收端的人是否有特定的软件来创建数据。2.XML具有较好的保值性.过去40年来的大多数计算机数据都丢失了,不是因为自然损害或是备份介质的磨损,而只是因为没有人来写出如何读取这些数据介质和格式的文档。以不常用的格式保存的二进制数据,数据也许会永远地消