java用户管理注册功能 含前后台代码

本文实例为大家分享了java用户注册功能,供大家参考,具体内容如下

主页面:

浏览器显示:

代码实现:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
 <head>

  <title>用户信息管理</title>
 </head>

 <body>
  用户注册:<br/>
  <!-- 相对路径 -->
  <form action="reg" method="post">
    姓名:<input type="text" name="name"/><br/>
    密码:<input type="password" name="pwd"/><br/>
    <input type="submit" value="注册"/>
  </form>
  <!-- 绝对路径 -->
  <a href="/usersWeb/reg">查看所有用户</a><!-- GET方式:超链接和在url后面添加参数 -->
 </body>
</html>

注册功能:

浏览器显示:

1)注册成功:

2)注册失败:

代码实现:

package cn.hncu.user.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.hncu.user.dao.UserDao;
import cn.hncu.user.dao.UserDaoImpl;
import cn.hncu.user.domain.User;

public class RegServlet extends HttpServlet {

  //注入
  UserDao dao=new UserDaoImpl();
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    List<User> users=dao.queryAllUsers();

    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
    out.println("<HTML>");
    out.println(" <HEAD><TITLE>注册结果页面</TITLE></HEAD>");
    out.println(" <BODY>");

    out.println("<table cellspacing=0 border=1px><tr><th>操作</th><th>姓名</th></tr>");
    for(User u:users){
      out.println("<tr><td><a href='/usersWeb/del?id="+u.getId()+"'>删除</a></th>");
      out.println("<th>"+u.getName()+"</th></tr>");
    }
    out.println("</table>");

    out.println(" </BODY>");
    out.println("</HTML>");
    out.flush();
    out.close();
  }

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

    request.setCharacterEncoding("utf-8");
    String name=request.getParameter("name");
    String pwd=request.getParameter("pwd");
    User user=new User();
    user.setName(name);
    user.setPwd(pwd);
    boolean boo=dao.reg(user);

    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
    out.println("<HTML>");
    out.println(" <HEAD><TITLE>注册结果页面</TITLE></HEAD>");
    out.println(" <BODY>");

    if(boo){
      out.println("恭喜您("+name+")注册成功了...");
    }else{
      out.println("您("+name+")注册失败了...<br/>用户名已存在,请换一个注册");
    }
    out.println("<a href='javascript:history.go(-1)'>返回</a>");
    out.println(" </BODY>");
    out.println("</HTML>");
    out.flush();
    out.close();
  }

}

查看所有用户功能:

浏览器显示:

代码实现: RegServlet类的doGet方法实现

删除操作功能:删除成功会重定向到主页面

代码实现:

package cn.hncu.user.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.hncu.user.dao.UserDao;
import cn.hncu.user.dao.UserDaoImpl;

public class DelServlet extends HttpServlet {

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

    String id=request.getParameter("id");
//   System.out.println("del-id:"+id);
    UserDao dao=new UserDaoImpl();
    dao.delUser(id);

    //转到主页--重定向
    response.sendRedirect("/usersWeb/index.jsp");
  }

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

    doGet(request,response);
  }

}

配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 <display-name></display-name>
 <servlet>
  <servlet-name>RegServlet</servlet-name>
  <servlet-class>cn.hncu.user.servlet.RegServlet</servlet-class>
 </servlet>
 <servlet>
  <servlet-name>DelServlet</servlet-name>
  <servlet-class>cn.hncu.user.servlet.DelServlet</servlet-class>
 </servlet>

 <servlet-mapping>
  <servlet-name>RegServlet</servlet-name>
  <url-pattern>/reg</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
  <servlet-name>DelServlet</servlet-name>
  <url-pattern>/del</url-pattern>
 </servlet-mapping>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

domain包的User对象

package cn.hncu.user.domain;

public class User {

  private String id;
  private String name;
  private String pwd;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getPwd() {
    return pwd;
  }
  public void setPwd(String pwd) {
    this.pwd = pwd;
  }
  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }
  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((id == null) ? 0 : id.hashCode());
    return result;
  }
  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    User other = (User) obj;
    if (id == null) {
      if (other.id != null)
        return false;
    } else if (!id.equals(other.id))
      return false;
    return true;
  }
  @Override
  public String toString() {
    return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]";
  }

}

逻辑层dao:

接口


实现类

package cn.hncu.user.dao;

import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;

import cn.hncu.user.domain.User;
import cn.hncu.user.utils.DomFactory;
import cn.hncu.user.utils.IDGenerate;

public class UserDaoImpl implements UserDao{

  Document dom=DomFactory.getDom();
  @Override
  public boolean reg(User user) {
    //  //title[@lang='eng']选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
//   dom.selectSingleNode("//user[fn:lower-case(@name)='"+user.getName().toLowerCase()+"']");
    Node node=dom.selectSingleNode("//user[name='"+user.getName()+"']");//user节点下值为user.getName()的name元素
    //"name[='"+user.getName().toLowerCase()+"']"
    if(node!=null){
      return false;
    }

    Element root=dom.getRootElement();
    Element eUser=root.addElement("user");
    String id=IDGenerate.getID();
    eUser.addAttribute("id", id);
    eUser.addElement("name").setText(user.getName());
    eUser.addElement("pwd").setText(user.getPwd());

    DomFactory.save();

    return true;
  }

  @Override
  public List<User> queryAllUsers() {
    List<User> users=new ArrayList<User>();
    List<Element> en=dom.selectNodes("//user");
    for(Element e:en){
      String id=e.attributeValue("id");
      String name=e.elementText("name");
      User user=new User();
      user.setId(id);
      user.setName(name);
      users.add(user);
    }

    return users;
  }

  @Override
  public void delUser(String id) {
//   System.out.println(id);
    String xpath="//user[@id='"+id+"']";
    Node node=dom.selectSingleNode(xpath);
    if(node!=null){
//     System.out.println("del...");
      node.getParent().remove(node);
      DomFactory.save();
    }

  }

}

工具包utils:
获取用户id

package cn.hncu.user.utils;

import java.util.UUID;

public class IDGenerate {
  private IDGenerate(){

  }
  public static String getID(){
//   return UUID.randomUUID().toString();
    return UUID.randomUUID().toString().replace("-", "");
  }
}

对数据库users.xml的dom获取和保存方法

这里用dom4j的包,,,所以要把dom4j两个包导入的相应的位置:

package cn.hncu.user.utils;

import java.io.FileOutputStream;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class DomFactory {
  private static Document dom;
  private static String fileName;
  static{
    try {
      SAXReader r=new SAXReader();
      fileName=DomFactory.class.getClassLoader().getResource("users.xml").getPath();
      System.out.println("users.xml的路径:"+fileName);///D:/apache-tomcat-7.0.30/webapps/usersWeb/WEB-INF/classes/users.xml
      //注意:获取tomcat中当前项目classpath下的资源方式
      dom=r.read(fileName);
    } catch (DocumentException e) {
      e.printStackTrace();
    }
  }
  public static Document getDom(){
    return dom;
  }
  public static void save(){
    XMLWriter w;
    try {
      w = new XMLWriter(new FileOutputStream(fileName));
      w.write(dom);
      w.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

数据库:

<?xml version="1.0" encoding="UTF-8"?>
<users>

</users>

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

(0)

相关推荐

  • java实现学籍管理系统

    本教程为大家分享了学籍管理系统的具体java代码,供大家参考,具体内容如下 1.需求分析 1.1系统功能设计 (1)能够查询学生的基本信息,如:学号,姓名年龄,班级和性别 (2)能对表格中的学生信息实现增加,删除,查找,修改等功能 (3)能将数据保存到MySQL数据库中,记录下来 (4)能把数据通过mysql数据库进行数据更新 1.2系统模块设计 学籍管理系统包括增加信息模块,删除信息模块,修改信息模块,查询信息模块,更新数据模块.系统管理人员能够查询学生的学号,姓名,性别,年龄,所获奖项等信息

  • Java设计模块系列之书店管理系统单机版(二)

    Java-单机版的书店管理系统(练习设计模块和思想_系列 一 ): http://www.jb51.net/article/91004.htm 介绍 小提示:上面一点有一个目录,可以快速定位到自己需要看的类. 今天对前面的代码有了小小的修改,让代码更加完善了一点. 至于用户唯一标识码uuid,会在以后修改成程序内部生成的, 现在的uuid还是由用户自己设置. 今天对这个程序,添加了用户界面的表现层的一部分,增加了公共类 枚举, 下面贴出目前我写的这个程序的全部代码:我会逐渐的写完这个程序的,请大

  • 简单实现Android学生管理系统(附源码)

    本文实例讲述了Android实现学生管理系统,分享给大家供大家参考.具体如下: (1)管理系统实现的功能主要是:学生.教师的注册登录,和选课,以及修改学生的成绩等基本简单的功能,最主要的是实现一些Dialog的使用. 界面如下: (2)主要代码如下:(个人留作笔记,如需要完整代码,在最下边免费下载) 下边是一个适配器,适配器是为了一个listvie进行设置值,其中加载的是一个itemview,适配器中还是用了继承的方法,用于通知适配器进行更新. public class CourseAdapte

  • JavaEE在线人数管理系统

    这篇博客是filter.listener和servlet技术的相关总结,实现了简单的显示在线人数.在线人详细信息.管理员踢人功能 下面是详细代码 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http:

  • JavaWeb Session 会话管理实例详解

    Session会话简介 会话是指在一段时间内,用户使用同一个浏览器进程与Web应用之间的交互过程. 会话(Session)通常用来跟踪用户的状态,缓存用户在此浏览器进程中的信息. 当用户关闭浏览器,上一个Session也就无法再次获得了(Cookie的maxAge为-1的情况).再次打开新的浏览器,将开始一个新的会话. 类javax.servlet.http.HttpSession.每一个HttpSession代表用户的一个会话. 每一个Session的过期时间默认为30分钟. 当浏览器第一次访

  • C语言职工管理系统设计

    本文实例为大家分享了C语言职工管理系统设计代码,供大家参考,具体内容如下 代码如下: #include<stdio.h> #include<stdlib.h> #include <string.h> struct Worker { int id;//工号 char name[16];//姓名 char sex[8];//性别 int age;//年龄 char edu_exp[32];//学历 int wage;//工资 char adress[32];//地址 cha

  • java联系人管理系统简单设计

    本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下 要求:  请使用XML保存数据,完成一个联系人管理系统.       用户必须经过认证登录后方可以使用系统.       注册.增加.删除.查看联系人功能.        分模块进行设计. 两层框架-用户交互层,Dao层.             其他支持层-数据封装层.             工具类-加密,工厂Bean. 开发步骤: 第一步:设计数据结构-XML. 第一步:设计数据结构-XML. 第三步:准备资源并

  • java学生信息管理系统设计

    本例的学生信息添加进入数据库的事务(可以提交事务,事务回滚,用本地线程完善) 主页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <htm

  • java学生信息管理系统设计(2)

    本例的学生信息添加进入数据库的事务(可以提交事务,事务回滚,用本地线程完善) 主页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <htm

  • Android实现学生管理系统

    本文实例为大家分享了Android实现学生管理系统的关键性代码,供大家参考,具体内容如下 局部效果图: 实现代码: 1.布局 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima27.sutdentmanager&qu

随机推荐