首页 > 代码库 > xml实现登录表单验证
xml实现登录表单验证
定义:
XML(eXtended Markup Language,可扩展标记语言)提供了一套跨平台、跨网络、跨程序的语言的数据描述方式,使用XML可以方便地实现数据交换、系统配置、内容管理等常见功能。
XML解析:
在XML文件中由于更多的是描述信息的内容,所以在得到一个XML文档后应该利用程序按照其中元素的定义名称取出相应的内容,这样的操作就称为XML解析。XML解析有两种方式,SAX和DOM解析方式。
1)DOM解析与用户登录
登录表单(login.jsp):
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 密 码:<input type="password" name="password"> 9 <select name="type"> 10 <option value="http://www.mamicode.com/student" selected="selected">学生登录</option> 11 <option value="http://www.mamicode.com/teacher">教师登录</option> 12 <option value="http://www.mamicode.com/admin">管理员登录</option> 13 </select> 14 <select name="database"> 15 <option value="http://www.mamicode.com/oracle" selected="selected">oracle数据库</option> 16 <option value="http://www.mamicode.com/sqlserver">sqlserver数据库</option> 17 <option value="http://www.mamicode.com/dom">通过xml文件验证</option> 18 </select> 19 <input type="submit" value="http://www.mamicode.com/登录" /> 20 <input type="reset" value="http://www.mamicode.com/清除"> 21 </form> 22 </body> 23 </html>
XML文件(student_login.xml):
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>
登录验证(login_xml.jsp):
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>
这三个文件结合使用即可实现通过XML文件验证用户登录的功能,简单吧!
xml的应用:
对于小型项目来说,你可能完全不需要存储大量的数据,不需要经常进行读取,这时使用一个完整的数据库来完成任务无疑是杀鸡用牛刀,只使用简简单单的xml便是极好的。xml文件需要解析才能使用,它存在于磁盘中,所以经常读取的效率不是很高,小项目的配置是它的天下。
小结:
本文介绍的只是xml文件知识的一个非常简单的应用,就像文章开头提到的,xml的应用远远超过本文所介绍的这一点。xml文件只能但是对于只会通过数据库验证的同学来说,这无疑能帮助你打开视野,提升编程水平。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。