码迷,mamicode.com
首页 > 其他好文 > 详细

xml实现登录表单验证

时间:2014-05-18 02:36:54      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   java   

定义:

  XML(eXtended Markup Language,可扩展标记语言)提供了一套跨平台、跨网络、跨程序的语言的数据描述方式,使用XML可以方便地实现数据交换、系统配置、内容管理等常见功能。

XML解析:

  在XML文件中由于更多的是描述信息的内容,所以在得到一个XML文档后应该利用程序按照其中元素的定义名称取出相应的内容,这样的操作就称为XML解析。XML解析有两种方式,SAX和DOM解析方式。

  1)DOM解析与用户登录

  登录表单(login.jsp):

bubuko.com,布布扣
 1 <%@page contentType="text/html;charset=gb2312"%>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <title>登录</title></head>
 5 <body>
 6 <form action="login_xml.jsp" method="post">
 7 用户名:<input type="text" name="name">
 8 密&nbsp;码:<input type="password" name="password">
 9 <select name="type">
10     <option value="student" selected="selected">学生登录</option>
11     <option value="teacher">教师登录</option>
12     <option value="admin">管理员登录</option>
13 </select>
14 <select name="database">
15     <option value="oracle" selected="selected">oracle数据库</option>
16     <option value="sqlserver">sqlserver数据库</option>
17     <option value="dom">通过xml文件验证</option>
18 </select>
19 <input type="submit" value="登录" />
20 <input type="reset" value="清除">
21 </form>
22 </body>
23 </html>
bubuko.com,布布扣

  XML文件(student_login.xml):

bubuko.com,布布扣
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <user>
 3     <student>
 4         <name>王定</name>
 5         <password>123</password>
 6     </student>
 7     <teacher>
 8         <name>黄艳娟</name>
 9         <password>111</password>
10     </teacher>
11     <admin>
12         <name>奥巴马</name>
13         <password>588</password>
14     </admin>
15 </user>
bubuko.com,布布扣

  登录验证(login_xml.jsp):

bubuko.com,布布扣
 1 <%@ page language="java" contentType="text/html; charset=gb2312"
 2     pageEncoding="gb2312"%>
 3 <%@page import="java.io.*,org.w3c.dom.*,javax.xml.parsers.*" %>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 8 <title>登录验证</title>
 9 </head>
10 <body>
11 <%
12     String name=request.getParameter("name");
13     name=new String(name.getBytes("ISO-8859-1"), "gb2312");  //处理乱码
14     String password=request.getParameter("password");
15     String user=request.getParameter("type");
16     String database=request.getParameter("database");   //获得数据库类型信息
17     boolean login_tag=false;
18     
19     System.out.println(name);
20     System.out.println(password);
21     System.out.println(user);
22     System.out.println(database);
23     
24     // 取得DocumentBuilderFactory类的对象
25     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance() ;
26     // 取得DocumentBuilder类的对象
27     DocumentBuilder build = factory.newDocumentBuilder()  ;
28     Document doc = build.parse(new File("E:" + File.separator + "eclipse" + File.separator+"wd_eclipse"+
29             File.separator+"webconfig"+File.separator+"student_login.xml")) ;     //xml文件路径
30     
31     
32     NodeList nl = doc.getElementsByTagName("student") ;
33     Element e1 = (Element) nl.item(0) ;    // 取出每一个元素
34     String studentName=e1.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
35     String studentPassword=e1.getElementsByTagName("password").item(0).getFirstChild().getNodeValue() ;
36         
37     NodeList n2 = doc.getElementsByTagName("teacher") ;
38     Element e2 = (Element) n2.item(0) ;    // 取出每一个元素
39     String teacherName=e2.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
40     String teacherPassword=e2.getElementsByTagName("password").item(0).getFirstChild().getNodeValue() ;
41         
42     NodeList n3 = doc.getElementsByTagName("admin") ;
43     Element e3 = (Element) n3.item(0) ;    // 取出每一个元素
44     String adminName=e3.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
45     String adminPassword=e3.getElementsByTagName("password").item(0).getFirstChild().getNodeValue() ;
46         
47 
48     if(user.equals("student") && name.equals(studentName) && password.equals(studentPassword)){
49         login_tag=true;
50     }
51     if(user.equals("teacher") && name.equals(teacherName) && password.equals(teacherPassword)){
52         login_tag=true;
53     }
54     if(user.equals("admin") && name.equals(adminName) && password.equals(adminPassword)){
55         login_tag=true;
56     }
57     if(login_tag==true){
58 %>        用户登录成功!
59 <%
60     }else{
61 %>        登录失败!
62 <%
63     }
64 %>
65 </body>
66 </html>
bubuko.com,布布扣

  这三个文件结合使用即可实现通过XML文件验证用户登录的功能,简单吧!

xml的应用:

  对于小型项目来说,你可能完全不需要存储大量的数据,不需要经常进行读取,这时使用一个完整的数据库来完成任务无疑是杀鸡用牛刀,只使用简简单单的xml便是极好的。xml文件需要解析才能使用,它存在于磁盘中,所以经常读取的效率不是很高,小项目的配置是它的天下。

小结:

  本文介绍的只是xml文件知识的一个非常简单的应用,就像文章开头提到的,xml的应用远远超过本文所介绍的这一点。xml文件只能但是对于只会通过数据库验证的同学来说,这无疑能帮助你打开视野,提升编程水平。

 

xml实现登录表单验证,布布扣,bubuko.com

xml实现登录表单验证

标签:style   blog   class   code   c   java   

原文地址:http://www.cnblogs.com/wd-eco/p/3733927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!