jsp基于XML实现用户登录与注册的实例解析(附源码)

简单的基于xml做数据库的登录与注册
主题介绍:
1.xml的读取和存储,主要是用到dom4j技术,(网络中的文件存储路径采用classLoader)
文件的读取和存储,写了一个工厂类

public class DocumentFactory {
 private static Document dom=null;//需要共享一个dom,所以需要设置为static
 private static String name="user.xml";
 private static String filename; 

//写一个静态块实现对dom树的读取
static{//dom4j技术
 SAXReader read=new SAXReader();
  filename=DocumentFactory.class.getClassLoader().getResource(name).getPath();//采用类加载器进行读取文件
    try {
    dom=read.read(filename);
   } catch (DocumentException e) {<span style="font-family: Arial, Helvetica, sans-serif;">   e.printStackTrace();}}</span> 

//主要获得和存储的两个函数(采用单例模式)(必须共享一个dom数) 

public static Document getDocument(){ //获得xml中的dom树
 return dom;
} 

//注册之后需要保存
 public static void Save() {
  XMLWriter wr;
  try {
   wr = new XMLWriter(new FileOutputStream(filename));
  }catch (Exception e1) {
   throw new RuntimeException("存储文件时读文件失败");
  }
  try {
   wr.write(dom);
  } catch (IOException e) {
   throw new RuntimeException("写文件失败"+e.getMessage());
  }finally{
   try {
    if(wr!=null){
    wr.close();
    }
   } catch (IOException e) {
    throw new RuntimeException("关流失败"+e.getMessage());}}}
}

2.前台的技术:基本上就是界面的搭建和将数据传到后台进行处理。以及部分的必填选项要求。
两个页面的代码:
//登录

<body>
   <form action='login' method="post">
   用户名:<input type="text" name="name" /><br/>
   密 码 :<input type="text" name="pwd" /><br/>
   验证码:<input type="text" name="checkCode"><img src="/LOGIN/immg" id='imgid'><a href="javascript:flush()">看不清</a>//需要重写一个js进行刷新
   <br/>
   <input type="submit"value="登录" />
   <input type="reset"value="重置" />
   <a href='jsps/Reg.jsp'>注册</a> 

  </form> 

//登录后台的处理

public class Login extends HttpServlet { 

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 } 

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException { 

  request.setCharacterEncoding("utf-8");//设置utf-8的编码格式去接收
  response.setContentType("text/html;charset=UTF-8");//<span style="color:#ff0000;">设置页面显示方式,这个设置必须要在获得输出流之前设置,不然设置都没有用,照样会出现乱码</span>
  PrintWriter out = response.getWriter(); 

  out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
  out.println("<HTML>");
  out.println(" <HEAD><TITLE>A Servlet</TITLE>");
  out.println(" <meta http-equiv='content-type' content='text/html; charset=UTF-8'> </HEAD>");
  out.println(" <BODY>");
  String name=request.getParameter("name");
  String pwd=request.getParameter("pwd");
  String check=request.getParameter("checkCode");//从界面获得验证码输入的值
  ImgDemo id =new ImgDemo();
  String str=id.getStr();
  if(!check.equals(str)){
   out.println("登录失败,验证码不正确!!");//要是验证码不符合,直接返回登录界面
   out.print("<a href='index.jsp'>返回登录</a>");
   return;
  }
//  System.out.println("11"+check);
//  System.out.println("22"+str); 

  //登录前获得所有的对象
  Document dom=DocumentFactory.getDocument();
  boolean flag=false;
  Element root=dom.getRootElement();
  Iterator<Element> it=root.elementIterator(); 

  while(it.hasNext()){
   Element ele =it.next();
   String nameC=ele.attributeValue("name");
   String pwdC=ele.attributeValue("pwd");
   if(name.trim().equals(nameC)&&pwdC.equals(pwdC)){
    flag=true;
    break;
   }
  }
  if(flag){
   out.print("<font color='red' size='8px'>恭喜您,登陆成功!</font>");
   out.println("<a href='index.jsp'>返回登录</a>");
  }else{
   out.print("用户名和密码不匹配。登录失败。。。");
   out.println("<a href='index.jsp'>返回登录</a>");
  }
  out.println(" </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
 } 

}

//注册

<body>
  <form action='reg' method="post">
   用户 名:<input type="text" name="name" onblur="check()" id="name"/><span id="spanid"></span><br/>
   密 码 : <input type="text" name="pwd" id="pwd" onblur="check1()"/><span id="spanid1"></span><br/>
   确认密码 :<input type="text" name="pwd2" id="pwd2" onblur="check2()"/><span id="spanid2"></span><br/>
   <input type="submit"value="注册" />
   <input type="reset"value="重置" /> 

  </form>
 </body>

//注册的后台处理

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException { 

  response.setContentType("text/html;charset=utf-8");//<span style="color:#ff0000;">必须要设置在获得Printwrite之前,都则设置无效</span>
  PrintWriter out = response.getWriter();
  out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
  out.println("<HTML>");
  out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  out.println(" <BODY>");
  boolean flag=false; 

  request.setCharacterEncoding("utf-8");
  String name=request.getParameter("name");
  String pwd=request.getParameter("pwd"); 

  Document dom =DocumentFactory.getDocument();
  Element root=dom.getRootElement();
  Iterator<Element> it=root.elementIterator();
  while(it.hasNext()){
   Element ele=it.next();
   String nameR=ele.attributeValue("name");//这里传过来的值可能是null.所以我们必须在前台要预防一下,当然在这里也要考虑一下
   String pwdR=ele.attributeValue("pwd");
   if(name.equals(nameR)&&pwd.equals(pwdR)){
    flag=true;
    break;
   }
  }
  if(flag){
   out.print("此用户已注册!!");
   out.print("<a href='jsps/Reg.jsp'>返回注册</a>");
  }else{
   Element ele=root.addElement("user");
   ele.addAttribute("name", name);
   ele.addAttribute("pwd", pwd);
   DocumentFactory.Save();
   out.print("注册成功!!");
   out.print("<a href='index.jsp'>返回登录</a>");
  }
  out.println(" </BODY>");
  out.println("</HTML>");
} 

3.验证码技术:同样的从后台获取图片,以及登录时候进行匹配
效果图:

1,首先是验证验证码的

2.密码匹配

3,用户注册

4.密码正确

 5,查看user.xml文件

整个登录和注册的源代码下载地址:jsp基于XML实现用户登录与注册的实例解析

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • js实现登录与注册界面

    完成登录与注册页面的HTML+CSS+JS,其中的输入项检查包括: 用户名6-12位 首字母不能是数字 只能包含字母和数字 密码6-12位 注册页两次密码是否一致 html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>欢迎你,请先登陆!</title> <script type="

  • 原生js验证简洁注册登录页面

    序 一个以js验证表单的简洁的注册登录页面,不多说直接上图 效果 主要文件 完整代码 1 sign_up.html 注册表单 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>sign-up</title> <link rel="stylesheet" href="css

  • JSP实现用户登录、注册和退出功能

    本文讲述使用JSP实现用户登录,包括用户登录.注册和退出功能等. 1.系统用例图 2.页面流程图 3.数据库设计 本例使用oracle数据库 创建用户表 包括id,username,password和email,共4个字段 -- Create table create table P_USER ( id VARCHAR2(50) not null, username VARCHAR2(20), password VARCHAR2(20), email VARCHAR2(50) ) tablesp

  • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式. 这里以一个最常用的用户登录注册程序来讲解Servlet+JS

  • Servlet+JavaBean+JSP打造Java Web注册与登录功能

    采用Java Web所实现的MVC结构图如下,其中控制器部分采用Servlet来实现,模型部分采用JavaBean来实现,而大部分的视图采用Jsp页面来实现. 思想基础 JSP+JavaBean两层结构工作原理应该是比较熟悉的,也比较好理解. 但是有一点必须要清楚就是用户通过浏览器来发送网页的请求,此请求到达服务器后在服务器端查找对应的网页,如果是首次请求(第二次就不用解释执行了),对于JSP来说要生成Servlet,然后通过Servlet引擎来执行 Servlet,把调用JavaBean的结果

  • node.js实现登录注册页面

    本文实例为大家分享了node.js登录注册页面展示的具体代码,供大家参考,具体内容如下 首先需要新建四个文件 一个服务器js 一个保存数据的txt 一个登陆.一个注册页面html 1.注册页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>regist</title> </head> <

  • JSP+MySQL实现网站的登录与注册小案例

    为了练手,我就自己试着做了一个网站的登录与注册的小案例.由于没有做美化处理,所以界面并不是很好看. 网站实现的功能如下:  •用户首次注册功能  •用户登录功能 下面我将会分模块展示 注册模块 首先需要一个注册界面,如下register.jsp: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOC

  • js制作带有遮罩弹出层实现登录注册表单特效代码分享

    本文实例讲述了js制作带有遮罩弹出层实现登录注册表单代码特效代码.分享给大家供大家参考.具体如下: 运行效果图:                     ----------------------查看效果   源码下载----------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. jquery制作的带有遮罩弹出层实现登录注册等表单的特效源码,是一段实现了点击后在原始页面上弹出想用页面的代码.  为大家分享的js制作带有遮罩弹出层实现登录注册表单代码特效

  • Ionic+AngularJS实现登录和注册带验证功能

    登录: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title></title> <li

  • 在jsp中用bean和servlet联合实现用户注册、登录

    声明:作者原创,版权所有.未经授权,不得转载 在jsp中用bean和servlet联合实现用户注册.登录 作者:imagebear版权:imagebear 本例需要的软件和运行环境:1.Windows2000 Server操作系统2.jdk1.43.JCreator2.5(java源码编辑调试器,吐血推荐!)4.Macromedia JRun MX5.Macromedia Dreamweaver MX(非必需)6.MySQL数据库(最好安装MySQL Control Center) 一.数据库设

随机推荐