基于web的网上书城系统开发-----登录注册
注册功能实现
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的网上书城系统开发-----登录注册的更多相关文章
- 基于web的网上书城系统开发-----登录注册扩展-------验证码功能
public class CheckCode extends HttpServlet { private static final long serialVersionUID = 1L; privat ...
- 基于web的网上书城系统开发-----需求分析
网上书店管理系统主要针对中小型书店,图书管理员将图书信息整理归类发布到网上.,用户登录该网站后进行浏览图书信息.购买等活动. 前台客户输入的数据交给后台数据库处理并及时反馈给双方.客户和管理者拥有相应 ...
- 基于WEB的网上购物系统-ssh源码
基于WEB的网上购物系统主要功能包括:前台用户登录退出.注册.在线购物.修改个人信息.后台商品管理等等.本系统结构如下:(1)商品浏览模块: 实现浏览最新商品 实现按商品名 ...
- 基于SSH框架的网上书店系统开发的质量属性
基于SSH框架的网上书店系统开发的质量属性 对于我的基于SSH框架的网上书店系统的开发要实现的质量属性有可用性.可修改性.性能.安全性.易用性和可测试性. 1.对于可用性方面的战术: 可用性(Avai ...
- 文献综述七:基于SSM的网上商城的开发与设计
一.基本信息 标题:基于SSM的网上商城的开发与设计 时间:2018 出版源:Computer Knowledge and Technology 文件分类:对框架的研究 二.研究背景 为了解决现在电商 ...
- Java Web之网上购物系统(注册、登录、浏览商品、添加购物车)
眼看就要期末了,我的专业课也迎来了第二次的期末作业---------<网上购物系统>.虽然老师的意图是在锻炼我们后台的能力,但是想着还是不利用网上的模板,准备自己写,以来别人写的静态页看不 ...
- 基于微信小程序的系统开发准备工作
腾讯推出微信小程序也有一段时间了,在各种行业里面也都掀起一阵阵的热潮,很多APP应用被简化为小程序的功能迅速推出,同时也根据小程序的特性推出各种独具匠心的应用,相对传统的APP来说,微信小程序确实能够 ...
- 使用 Laravel 自带的用户系统 包括登录注册功能以及错误处理
一.默认 Laravel 不会自动帮你装上用户系统, 二.但是我们可以从默认首页的代码中看到,登录注册按钮被隐藏了 三.需要手动输入命令进行安装 php artisan make:auth 安装完成后 ...
- Java Web之网上购物系统(提交订单、查看我的订单)
作业终于做完了,好开心......虽然这一周经历不是那么顺利,但是觉得还是收获了不少,有过想哭的冲动,代码不会写,事情办不好,各种发愁.空间里发小发了带父母出去游玩的照片,瞬间能量值不知道是被击退的多 ...
随机推荐
- 关于C语言中static保留字的使用
static存储类型可以用于全部变量,无需考虑变量声明的位置.但是作用于块外部和块内部时具有不同的作用. (1)当作用于函数内部时,和每次程序离开所在块就会丢失值的自 ...
- 【Hdu3555】 Bomb(数位DP)
Description 题意就是找0到N有多少个数中含有49. \(1\leq N \leq2^{63}-1\) Solution 数位DP,与hdu3652类似 \(F[i][state]\)表示位 ...
- JavaSE----基础语法(方法)
1.8 方法 1.8.1方法的的定义 定义:完毕特定功能的代码块.在非常多语言里面有函数的定义,而在Java中函数被称为方法. 格式: 修饰符 返回值类型 方法名(參数类型 參数名1,參数类型 參数名 ...
- C++简易list
list不同于vector.每一个节点的结构须要自行定义,迭代器属于双向迭代器(不是随即迭代器),也须要自行定义.和通用迭代器一样,list的迭代器须要实现的操作有:++.--.*.->.==. ...
- 以流方式读写文件:文件菜单打开一个文件,文件内容显示在RichTexBox中,执行复制、剪切、粘贴后,通过文件菜单可以保存修改后的文件。
MainWindow.xaml文件 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&q ...
- ssm学习(四)--完整的增删改查demo
上一篇文章简要介绍了将sping mvc加入整个框架,算是完成了ssm的集成.本节继续前面的内容,结合spring mvc做一个简单的增删改查demo. 1.首先,重写一下GeckoList.jsp页 ...
- scrapy里的selector,不能有正则提取
参考:http://blog.csdn.net/dawnranger/article/details/50037703 Selector 有一个 .re() 方法,用来通过正则表达式来提取数据. 不同 ...
- C#相关知识总结
字符串相关知识 判断某字符串中包含某个字符,并过滤 if (string.Contains("*")) string = string.Replace('*',' '); // ...
- OpenCASCADE构造一般曲面
OpenCASCADE构造一般曲面 eryar@163.com Abstract. 本文主要介绍常见的曲面如一般柱面(拉伸曲面).旋转面在OpenCASCADE中的构造方法,由此思考一般放样算法的实现 ...
- AutoFac+ASP.NetMvc,AspNet.Core
ASP.Net.Mvc 引用 install-package autofac install-package Mvc5 //创建一个用于注册的对象 ContainerBuilder builder = ...