信息管理系统的登录注册

在上一篇的数据库的高级应用中完成了数据库的连接,接下来完成信息管理系统的登录注册。

登录实际上就是查询数据库中是否有页面上的用户输入的用户名与密码。核对完再返回页面,登录成功显示相应页面,失败显示相应的页面。

注册实际上就是利用sql语句向数据库中插入数据,插入成功显示相应页面,失败显示相应页面。

1.首先建立user类。

package cn.edu.hpu.model;

public class User {
	private static int id;
	private static String username;
	private static String password;

	public int getId() {
		return id;
	}
	public void setId(int id) {
		User.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		User.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		User.password = password;
	}
}<span style="font-family:KaiTi_GB2312;">
</span>

在这里说一个建包规则,一般包最好建成cn.edu.cn.......这种类型。

2.现在开始写接口类,即从数据库中进行的一系列操作。

首先定义接口。

package cn.edu.hpu.service;

import cn.edu.hpu.model.User;

public interface UserManager {

	public boolean RegisteUser(User user);
	public boolean CheckLogin(String username,String  password);

}<span style="font-family:KaiTi_GB2312;">
</span>

紧接着来写接口的实现类。

package cn.edu.hpu.service;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.PreparedStatement;

import cn.edu.hpu.model.User;
import cn.edu.hpu.util.Util;

public class UserManagerImp implements UserManager {

	@Override
	public boolean RegisteUser(User user) {
	 boolean flag=false;
	 String sql="insert into haha(username,password) values(?,?)";
	 Connection conn=Util.getConnection();//连接数据库

	try {
		 PreparedStatement pst = (PreparedStatement) conn.prepareStatement(sql);
		 pst.setString(1,user.getUsername());
		 pst.setString(2,user.getPassword());
		 pst.executeUpdate();
		 flag=true;
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	 return flag;
	}

	@Override
	public boolean CheckLogin(String username, String password) {
		boolean flag=false;
		String sql="select * from haha where username=? and password=?";
		Connection conn=Util.getConnection();
		try {
			PreparedStatement pst=(PreparedStatement) conn.prepareStatement(sql);
			pst.setString(1,username);
			pst.setString(2,password);
			ResultSet rs=pst.executeQuery();
			//遍历结果集
			if(rs.next()){
			flag=true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return flag;
	}
}<span style="font-family:KaiTi_GB2312;">
</span>

至此完成了从数据库进行的一系类操作。

3.现在开始写sevlet。servlet承担与页面的联系,接收转发。很多时候是表单等jsp页面的提交地址。

Servlet:  是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机Servlet生命周期)。

1)首先是登录的servlet

package cn.edu.hpu.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

import cn.edu.hpu.service.UserManager;
import cn.edu.hpu.service.UserManagerImp;

public class CheckLogin extends HttpServlet {
	/**
	 *
	 */
	private static final long serialVersionUID = 1L;
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		  doPost(request, response);//不管doPost还是doGet,都doPost
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");

		//获得username,password
		String username = request.getParameter("username");//从页面获得username,passwword
		String password = request.getParameter("password");
		UserManager mng = new UserManagerImp();
	    boolean flag=mng.CheckLogin(username, password);

		//获取用户验证码和系统产生的验证码
		String checkCode = request.getParameter("checkCode");
		String piccode = (String)request.getSession().getAttribute("piccode");
		System.out.println("---"+checkCode+"pic---"+piccode);

		if(flag==true&&piccode.equalsIgnoreCase(checkCode)){
			StudentDaoServlet servlet=new StudentDaoServlet();
			servlet.doPost(request, response);
		    HttpSession session=request.getSession();//获得session对象
		    session.setAttribute("username", username);
		}else {
			PrintWriter out = response.getWriter();
			out.write("Incorrect!");
		}
	}
}<span style="font-family:KaiTi_GB2312;">
</span>

2)其次是注册的servlet。

package cn.edu.hpu.servlet;

import java.io.IOException;
//import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.edu.hpu.model.User;
import cn.edu.hpu.service.UserManager;
import cn.edu.hpu.service.UserManagerImp;

public class Register extends HttpServlet {

	/**
	 *
	 */
	private static final long serialVersionUID = 1L;
	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");
		String Username=request.getParameter("username");
		String Password=request.getParameter("password");
		User u=new User();
		u.setUsername(Username);
		u.setPassword(Password);
		UserManager um=new UserManagerImp();
		boolean flag=um.RegisteUser(u);
		if(flag){
			response.sendRedirect("chenggong.jsp");
		}
	}

	}<span style="font-family:KaiTi_GB2312;">
</span>

4.最后就是jsp页面

1)登录页面的jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>

<style type="text/css">
	.body{background-image:url("1.jpg");width: 1200px;height: 600px;margin-left: 30px;}
	.hh{padding-top:70px;text-align: center;}

input{
border-radius:30px;border-color:coral;height:30px;}

</style>

	<script type="text/javascript">
		function reload(){
			var time = new Date().getTime();
			document.getElementById("imgId").src="ImageServlet?d="+time;
		}

	</script>

  </head>

  <body>
  <div class="body">
 		<div class="hh">
   <center style="font-family:华文楷体;color:brown;"><h1 >登录页面</h1></center></br></br>
 <center><form action="CheckLogin" method="post" >
	    用 户 名:<input type="text" name="username" value="请输入用户名" style="height:30px;"></input>
       <p style="padding-top:3px;">密    码:<input type="password" name="password" style="height:30px;"></input></p>

	验 证 码:<input type="text" name="checkCode" style="height:30px;"></br></br>

    	<img  src="ImageServlet" id="imgId"/>  
    	<a href="javascript:reload()">看不清楚</a><br/></br>
	<p style="padding-top:3px;">   <input type="submit" value="登录"></input>      <a href="zhuce.jsp">注册</a></p>
	</form>	</center>
	</div>
 	</div>
  </body>
</html>

2)注册页面的jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

   <style type="text/css">

	.body{background-image:url("1.jpg");width: 1200px;height: 600px;margin-left: 50px}
	.hh{padding-top:100px;text-align: center;}
    input{
border-radius:30px;border-color:coral;height:30px;}
</style>

  </head>

  <body>
  <div class="body">
 		<div class="hh">
  <center><h1 style="font-family:华文楷体;">注册页面</h1></br></br>
 <form action="Register" method="post">
       用户名:<input type="text" name="username" style="height:30px">
<p style="padding-top:3px;"> 密  码:<input type="password" name="password" style="height:30px" ></p></br>
 <input type="submit" value="提交">     
 <input type="reset" value="重置"></br>
 </form>
 </center>
  <a href="javascript:history.go(-1)">返回</a>
 </body>
 </html>

在jsp页面中的form表单中有关于action的设置,即表单的提交地址(提交给哪个servlet来接受处理),还有method的设置(get,post),还有input中name的设置即交给servlet的东西。

5.以上的1  2  3  4  步是从底部向上进行的。现在让我们从页面开始的数据传输来传到底部吧。

当我们在页面上的表单中填入数据的时候,servlet来接收,得到相应的字符串,从然后创建姐口德对象,传入参数username,password后调用相应的方法进行接口的实现,实现完接口后根据返回值判断整个过程进行的正确与否,然后根据正确与否跳转到相应的页面。其实整个过程就是从页面传到数据库底部,在从数据库底部返回到页面。最主要就是通过接口和servlet来实现的。注册也是同样的原理。

至此完成了信息管理系统的登录注册。

时间: 2024-08-28 00:54:36

信息管理系统的登录注册的相关文章

JDBC应用、控制台连MySQL接数据库实现学生管理系统的登录注册、增删改查

**=====================连接数据库=====================** package com.sore.jdbc; import java.sql.*; public class Jdbc { static Connection conn=null; //创建连接桥 public static void main(String[] args) { try{ Class.forName("com.mysql.jdbc.Driver"); //加载驱动 S

java课程设计(学生信息管理系统)

1.需求分析 功能要求: 1)需要管理的学生信息有:学号.姓名.性别.出生日期.政治面貌.家庭住址.电话.宿舍号. 2)实现查询.增.删.改等功能. 数据存储:数据库或文件. 2.本组课题及本人任务 本组的课题是学生信息管理系统,我负责的任务是完成学生信息管理系统的图形界面. 3.总体设计(概要设计) 本组完成的是学生信息管理系统,主要的功能有增,删,查,改,管理的学生信息有学号.姓名.性别.出生日期.政治面貌.家庭住址.电话.宿舍号.并且使用数据库来储存学生信息. 小组成员 翁华辉:负责完成学

struts2-7-实验一(登录注册校验、管理员增查书籍信息)

一:首页login.jsp 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <%@ taglib prefix="s" uri="/struts-tags"%> 4 <!DOCTYPE html PUBLIC "-//W3C//DT

Java学生信息管理系统及支持用户名登录

package zzzzzzzz; import java.io.*; public class Text { public static void main(String[] args) throws MyException, IOException { Login l=new Login(); l.login(); } } class Student{ private String stunumber; private String name; private String age; pri

集合应用案例:编写程序实现学生信息管理系统的录入登录

本编文章主要介绍一个关于集合的应用案例:完成班级学员录入功能 (没有持久化操作,每次重启录入的信息都保存不了) 一.需求: 创建学生类:添加以下属性以及相应的构造函数!使用集合保存学员信息!完成登录功能! 二.功能展示: 1.系统启动时,因系统内没有学生信息,所以需要注册之后才能使用 2.注册时判断用户输入信息是否正确 3.可以使用注册信息登录系统 三.业务代码: 1 import java.io.Serializable; 2 3 /** 4 * 学生类 5 * @author Adminis

雇员信息管理系统(2)管理员数据库登录

运行结果如下: 登录页面loginview.php. 按下登录按钮,跳转到登录处理页面loginview.phploginprocess.php,进行数据库查询后,登录失败,跳转回登录页面loginview.php,并提示错误信息. 输入正确的账号密码,登录成功,跳转到主页面mainview.php. 使用phpMyAdmin创建雇员信息管理数据库(aedb)过程如下: 创建雇员信息管理数据库(aedb). 在雇员信息管理数据库(aedb)中,创建管理员表(ad). 在管理员表(ad)中,插入元

信息管理系统(java)

目录 摘要:.... 2 绪论.... 2 课程目的.... 2 课程研究的意义... 2 一.java课程设计目的和要求... 3 1.1课程设计目的... 3 1.2课程设计要求... 3 1.3系统功能图... 4 二.程序的设计与实现... 4 2.1登陆界面的设计与实现... 4 2.2密码注册界面的设计和实现... 5 2.3密码找回界面的设计和实现... 6 2.4信息管理主界面设计和实现... 7 2.5信息修改界面的设计和实现... 12 2.6新建文件的设计和实现... 14

学生信息管理系统 1.0

学生信息管理系统V1.0 1.实现用户的注册与登录功能. 1.1:注册时检测用户名,如果有重复则需要重新输入,用户信息存入数据库. 1.2:登录时,有验证码验证. 2.实现用户查询学生表的基本信息. 3.用户可以更改.删除学生表信息. 4.系统可以正确显示系统时间. 5.系统正确显示用户权限(功能暂未实现). 因为很多东西还没有学到,只能用最基础的代码实现功能. 1)欢迎页面 1 <%@ page language="java" contentType="text/ht

Redis 笔记与总结7 PHP + Redis 信息管理系统(用户信息的增删改查)

1. PHP 连接 Redis 访问 redis 官方网站的 client 栏目:http://www.redis.io/clients#php,可以获取 redis 的 php 扩展. 其中 phpredis 扩展比较稳定,功能也比较全,属于一个第三方扩展,但是已经被 PHP 官方授权,它的方法名和客户端下的方法名基本一致.github 地址:https://github.com/phpredis/phpredis,方法在这里也能查得到. ① 下载 phpredis 的源代码包,解压.配置.编