注册功能实现
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);
登录注册功能实现