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

简单的基于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实现用户登录与注册的实例解析

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索xml
, jsp
, 注册
用户登录
c语言编程实例源代码、qt编程实例集锦及源码、xml编程实例教程、jsp项目实例源码、jsp项目实例源码下载,以便于您获取更多的相关知识。

时间: 2024-10-22 20:36:09

jsp基于XML实现用户登录与注册的实例解析(附源码)_JSP编程的相关文章

基于jsp+servlet实现的简单博客系统实例(附源码)_JSP编程

本文实例讲述了基于jsp+servlet实现的简单博客系统.分享给大家供大家参考.具体如下: 没有用框架写的 小博客, 代码大量重复. 个人感觉重复代码对于新手还是有好处的,我也是新手,见谅. 完整实例代码点击此处本站下载. 1. servlet /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Servlet; import blog.

基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)_jquery

内容滑动切换应用非常广,常见的有幻灯片焦点图.画廊切换等.随着WEB前端技术的广泛应用,内容滑动切换效果占据着web页面重要地位,因此本站Helloweba特别给广大前端爱好者安排了浅显易懂的内容滑动切换效果的开发教程. 先给大家展示下效果图,感觉还不错请参数实现代码,具体效果如下所示: 效果展示      源码下载 本次教程分三个部分: 1.使用jQuery开发基本的内容滑动切换效果, 2.支持移动端触控自适应的内容滑动切换效果, 3.封装内容滑动切换效果jQuery插件. 本文讲解第一部分,

基于JS快速实现导航下拉菜单动画效果附源码下载_javascript技巧

这是一个带变形动画特效的下拉导航菜单特效.该导航菜单在菜单项之间切换时,下拉菜单会快速的根据菜单内容的大小来动态变形,显示合适的下拉菜单大小,效果非常棒. 快速的导航下拉菜单动画效果如下所示: 效果演示         源码下载 HTML 该导航菜单的HTML结构如下: <header class="cd-morph-dropdown"> <a href="#0" class="nav-trigger">Open Nav&

jQuery的Ajax用户认证和注册技术实例教程(附demo源码)_jquery

前面介绍了<jquery+ajax注册实时验证>及<jQuery使用$.ajax进行即时验证的方法>.这里进一步总结了jQuery的Ajax用户认证和注册技术.分享给大家供大家参考,具体如下: Ajax 表单提交是一个功能强大的技术,提供一种发送 web 表单的方法,无需重载浏览器窗口.jQuery 库让您使用 Ajax 表单提交功能进一步提供一个方便快捷的方法,以少量代码生成可用 Ajax 的 Web 表单.在本文中,学习如何使用 jQuery 创建基础 Ajax 表单提交,以及

基于jsp实现新闻管理系统 附完整源码_JSP编程

很棒的新闻发布系统分享给大家,希望大家喜欢. 下面就让我们来说一说基于jsp的新闻发布系统,其中使用的技术有JavaBean.fillter.数据库等,能够实现新闻的发布功能,在发布之后能够进行对每一条新闻的删除.修改.或者继续增加新的文章,最后还能够进行查询功能,其中引用了百度编辑器,能够进行图文并茂的编辑,极大地方便用户的使用. 注:完整项目下载地址:新闻发布系统 一.效果演示 首先让我们来看一看实现的效果: 下面是登陆的首界面: 图1 首界面 管理员登录页面: 图2 管理员登录界面 下面是

基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)_jquery

基于jQuery实现仿搜狐辩论投票动画代码 ,一款个性的卡通小人正方反方辩论投票特效代码.移动动画效果平滑自然.具有非常好的用户体验.该源码兼容目前最新的各类主流浏览器. 效果演示     源码下载 html代码: <script type="text/javascript"> $(document).ready(function () { var a = 500; var b = 130; $("#white").animate({ width: 0,

JSP实现用户登录、注册和退出功能_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) ) tablespa

mvc4-如何用MVC4建立一个工程。功能是:实现用户登录、注册,并将用户密码存储到本机SQL2008数据库。

问题描述 如何用MVC4建立一个工程.功能是:实现用户登录.注册,并将用户密码存储到本机SQL2008数据库. 如何用MVC4建立一个工程.功能是:实现用户登录.注册,并将用户密码存储到本机SQL2008数据库. 解决方案 创建一个默认的完整的mvc4应用,就是自带这些功能的. 解决方案二: 第4章 实现用户登录和注册功能

JSP实现简单的用户登录并显示出用户信息的方法_JSP编程

本文实例讲述了JSP实现简单的用户登录并显示出用户信息的方法.分享给大家供大家参考.具体实现方法如下: login.jsp 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  <%  String path = request.getContextPath();  String basePath = request.