注册功能实现

signup.jsp

//时间实现
function showLocale(objD)
{
	var str,colorhead,colorfoot;
	var yy = objD.getYear();
	if(yy<1900) yy = yy+1900;
	var MM = objD.getMonth()+1;
	if(MM<10) MM = '0' + MM;
	var dd = objD.getDate();
	if(dd<10) dd = '0' + dd;
	var hh = objD.getHours();
	if(hh<10) hh = '0' + hh;
	var mm = objD.getMinutes();
	if(mm<10) mm = '0' + mm;
	var ss = objD.getSeconds();
	if(ss<10) ss = '0' + ss;
	str =  yy + "-" + MM + "-" + dd + " " + hh + ":" + mm + ":" + ss;
	return(str);
}
function tick()
{
	var today;
	today = new Date();
	document.getElementById("localtime").value = showLocale(today);
	window.setTimeout("tick()", 1000);
}
tick();

  阻止空表单提交可以看:http://www.cnblogs.com/durui/p/7625783.html

用户点击注册把表单提交到LoginServlet,dopost方式提交

LoginServlet m=adduser

try {
			User user = new User();
			Userdao userdao = new Userdao();
			User user = userdao.getByName(request.getParameter("username")); //根据表单输入的用户名查询数据表用户
			if (user.getUsername().equals(request.getParameter("username"))) {//判断用户名是否存在
				request.getRequestDispatcher("/signup.jsp").forward(request,
						response);
			}else{
			user.setUsername(request.getParameter("username"));//数据封装
			user.setPassword(request.getParameter("password"));
			user.setTel(request.getParameter("tel"));
			user.setIntroduce(request.getParameter("introduce"));
			user.setRole("customer");
			user.setTime(request.getParameter("time"));
			Userdao udao = new Userdao();
			udao.save(user);//调用UserDao里面save方法
			request.getRequestDispatcher("/login.jsp").forward(request, response);
			}
		}catch(Exception e){

			request.getRequestDispatcher("/signup.jsp").forward(request,
					response);
		}

  然后servlet调用UserDao里面的getByName方法和save方法

getByName方法

//根据输入的用户名查找用户
	public User getByName(String username)throws Exception {
		// TODO Auto-generated method stub
		User user = null;
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstore",
					"root", "123456");
			ps=con.prepareStatement("select * from t_user as u where u.username=?");
			ps.setString(1, username);
			rs = ps.executeQuery();
			if (rs.next()) {
				user = new User();
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
				user.setTel(rs.getString("tel"));
				user.setIntroduce(rs.getString("introduce"));
				user.setRole(rs.getString("role"));
				user.setTime(rs.getString("time"));
			}
		} catch (Exception e) {
			e.printStackTrace();
			throw new Exception("数据库访问出现异常:" + e);
		} finally { // 关闭数据库连接等

 save方法

public void save(User user) throws Exception {
		// TODO Auto-generated method stub
		Connection con = null;
		PreparedStatement ps = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstore",
					"root", "123456");
			ps=con.prepareStatement("insert into t_user value(null,?,?,?,?,?,?)");
			ps.setString(1,user.getUsername());
			ps.setString(2, user.getPassword());
			ps.setString(3, user.getTel());
			ps.setString(4,user.getIntroduce());
			ps.setString(5, user.getRole());
			ps.setString(6, user.getTime());
			ps.executeUpdate();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			throw new Exception("数据库出现异常"+e);
		}finally{

登录功能

LoginServlet   m=“login”

String msg = null;   	//反馈信息
		try {
			//根据输入的用户名查找登录用户
			Userdao userdao = new Userdao();
			User user = userdao.getByName(request.getParameter("username")); //调用getByName方法,注册中已经写了 ,直接调用
			if(user == null){
				request.getRequestDispatcher("/login.jsp").forward(request,
						response);
				msg = "用户名不存在";
			}else if (!user.getPassword().equals(request.getParameter("password"))) {
				request.getRequestDispatcher("/login.jsp").forward(request,
						response);
				msg = "密码错误";
			} else {
				//登录成功,将登录用户user存入session范围
				request.getSession(true).setAttribute("user", user);
				request.getSession(true).setAttribute("isLogin", "ok");//后面配置过滤器阻止非登陆直接提交

				if(user.getRole().equals("管理员")){   //管理员,则转到管理首页

					request.getRequestDispatcher("/admin/admin_index.jsp").forward(request, response);

				}else if(user.getRole().equals("customer")){ //一般客户,则转到客户首页
					HttpSession session = request.getSession();
					session.setAttribute("customer", user);
					//将当前登录的客户对象绑定(存储)在session范围

					request.getRequestDispatcher("/customer/custindex.jsp").forward(request, response);
					//将客户(登录角色为客户)管理相关的页面置于customer目录下以便于管理
				}
			}
	}catch(Exception e){

		request.getRequestDispatcher("/login.jsp").forward(request,
				response);
		msg = e.toString();
	}
		request.setAttribute("msg", msg);

登录注册功能实现  

  

 

基于web的网上书城系统开发-----登录注册的更多相关文章

  1. 基于web的网上书城系统开发-----登录注册扩展-------验证码功能

    public class CheckCode extends HttpServlet { private static final long serialVersionUID = 1L; privat ...

  2. 基于web的网上书城系统开发-----需求分析

    网上书店管理系统主要针对中小型书店,图书管理员将图书信息整理归类发布到网上.,用户登录该网站后进行浏览图书信息.购买等活动. 前台客户输入的数据交给后台数据库处理并及时反馈给双方.客户和管理者拥有相应 ...

  3. 基于WEB的网上购物系统-ssh源码

    基于WEB的网上购物系统主要功能包括:前台用户登录退出.注册.在线购物.修改个人信息.后台商品管理等等.本系统结构如下:(1)商品浏览模块:        实现浏览最新商品        实现按商品名 ...

  4. 基于SSH框架的网上书店系统开发的质量属性

    基于SSH框架的网上书店系统开发的质量属性 对于我的基于SSH框架的网上书店系统的开发要实现的质量属性有可用性.可修改性.性能.安全性.易用性和可测试性. 1.对于可用性方面的战术: 可用性(Avai ...

  5. 文献综述七:基于SSM的网上商城的开发与设计

    一.基本信息 标题:基于SSM的网上商城的开发与设计 时间:2018 出版源:Computer Knowledge and Technology 文件分类:对框架的研究 二.研究背景 为了解决现在电商 ...

  6. Java Web之网上购物系统(注册、登录、浏览商品、添加购物车)

    眼看就要期末了,我的专业课也迎来了第二次的期末作业---------<网上购物系统>.虽然老师的意图是在锻炼我们后台的能力,但是想着还是不利用网上的模板,准备自己写,以来别人写的静态页看不 ...

  7. 基于微信小程序的系统开发准备工作

    腾讯推出微信小程序也有一段时间了,在各种行业里面也都掀起一阵阵的热潮,很多APP应用被简化为小程序的功能迅速推出,同时也根据小程序的特性推出各种独具匠心的应用,相对传统的APP来说,微信小程序确实能够 ...

  8. 使用 Laravel 自带的用户系统 包括登录注册功能以及错误处理

    一.默认 Laravel 不会自动帮你装上用户系统, 二.但是我们可以从默认首页的代码中看到,登录注册按钮被隐藏了 三.需要手动输入命令进行安装 php artisan make:auth 安装完成后 ...

  9. Java Web之网上购物系统(提交订单、查看我的订单)

    作业终于做完了,好开心......虽然这一周经历不是那么顺利,但是觉得还是收获了不少,有过想哭的冲动,代码不会写,事情办不好,各种发愁.空间里发小发了带父母出去游玩的照片,瞬间能量值不知道是被击退的多 ...

随机推荐

  1. How to support comparators in our sort implementations?

    上图是普林斯顿算法课part1.Mergesort章节给出的参考代码,可以发现这个代码有三处警告.造成的隐患就是我们无法在类型检查时发现送入sort()函数的数组元素类型和Comparator的泛型不 ...

  2. Android 7.1 屏幕旋转流程分析

    Android 7.1   屏幕旋转流程分析 一.概述 Android屏幕的旋转在framework主要涉及到三个类,结构如图 PhoneWindowManager:为屏幕的横竖屏转换的管理类. Wi ...

  3. 微信公众号开发系列-获取微信OpenID

    在微信开发时候在做消息接口交互的时候须要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID.接收事件推送方式和网页授权获取用户基本信息方式获取. 1.通过接收被动消息方式获 ...

  4. Xcode 7 你能不能再抗扎腾点儿呢 - 尤其自个儿强制升级后,没事儿就关闭

    Xcode 7 你能不能再抗扎腾点儿呢 - 尤其自个儿强制升级后,没事儿就关闭 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用 ...

  5. Git 经常使用命令总结

    一 关于加入.删除和回退 1 git rm --cached file  想要git不再跟踪这个文件,可是又不想在硬盘中删除该文件 2 在被git管理的文件夹中删除文件时,能够选择例如以下两种方式: ...

  6. COM-IE-(2)

    # -*- coding:UTF-8 -*- import sys from time import sleep import win32com.client from win32com.client ...

  7. Laravel技巧之记录多日志

    相信每个小伙伴在使用laravel的时候都会记录日志.查看日志.那么问题来了,比如我在对接zabbix接口的时候,使用 Log::info() 会让日志全部记录在 storage/logs/larav ...

  8. OS X Yosemite升级提示升级OS10.11或更高版本问题解决方法

    如图,楼主的pro久未升级,版本号已经很低.某天一时兴起,想体验最新版本的OS X.就很开心的进行软件更新: 依据iOS上的APP.系统升级经验,这是一个非常自然.毫无难度的过程,哪知道,今天一直卡在 ...

  9. Linux基础:用tcpdump抓包

    简介 网络数据包截获分析工具.支持针对网络层.协议.主机.网络或端口的过滤.并提供and.or.not等逻辑语句帮助去除无用的信息. tcpdump - dump traffic on a netwo ...

  10. 《Spark大数据处理:技术、应用与性能优化》【PDF】 下载

    内容简介 <Spark大数据处理:技术.应用与性能优化>根据最新技术版本,系统.全面.详细讲解Spark的各项功能使用.原理机制.技术细节.应用方法.性能优化,以及BDAS生态系统的相关技 ...