jsp第七周作业
用户表: uid (主键,自动增长) uname upwd
使用分层实现注册。(必做)
使用分层实现登录。(选做)
1,用户属性(User.java)
package com.db.user; public class User { private String uname; private String upass; public User(){} public User (String uname,String upass){ this.uname = uname; this.upass = upass; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpass() { return upass; } public void setUpass(String upass) { this.upass = upass; } }
2, 链接mysql(DriverDemo.java)
package com.db.mydriver; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DriverDemo { private String user = "root"; private String password = "root"; public Connection getConnection(){ Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydatabase",user,password); } catch (Exception e) { // TODO: handle exception } return conn; } //关闭连接 public void closeAll(Connection con,PreparedStatement ps,ResultSet rs){ try { if(rs != null) rs.close(); if(ps != null) ps.close(); if(con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } }
3,登录,注册实现(UserDemo.java)
package com.db.mydriver; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.db.user.User; public class UserDemo extends DriverDemo{ //注册 public int AddData(com.db.user.User s){ int i=0; Connection conn=null; PreparedStatement ps = null; conn = getConnection(); try { String sql = "insert into user(uname,upass) values(?,?)"; ps = conn.prepareStatement(sql); ps.setString(1, s.getUname()); ps.setString(2, s.getUpass()); i =ps.executeUpdate(); }catch (SQLException throwables) { throwables.printStackTrace(); }finally{ closeAll(conn, ps, null); } return i; } //登录 public int dl(com.db.user.User s){ int i=0; Connection conn =null; PreparedStatement ps = null; ResultSet rs =null; try { conn = getConnection(); String sql = "select * from user where uname=? and upass=?"; ps =conn.prepareStatement(sql); ps.setString(1, s.getUname()); ps.setString(2, s.getUpass()); rs = ps.executeQuery(); if(rs.next()){ System.out.print("账户登录成功"); i=1; }else{ System.out.print("账户登录失败"); i=0; } } catch (SQLException e) { e.printStackTrace(); }finally{ closeAll(conn, ps, rs); } return i; } }
4,登录界面(index.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <base href="<%=basePath%>"> <title>CSS控制表单样式</title> <style type="text/css"> body{ font-size:12px; font-family:"宋体";} /*全局控制*/ body,form,input,p{ padding:0; margin:0; border:0;} /*重置浏览器的默认样式*/ form{ width:320px; height:150px; padding-top:20px; margin:50px auto; /*使表单在浏览器中居中*/ background:#f5f8fd; /*为表单添加背景颜色*/ border-radius:20px; /*设置圆角边框*/ border:3px solid #4faccb; } p{ margin-top:15px; text-align:center; } p span{ width:40px; display:inline-block; text-align:right; } .num,.pass{ /*对文本框设置共同的宽、高、边框、内边距*/ width:152px; height:18px; border:1px solid #38a1bf; padding:2px 2px 2px 22px; } .num{ /*定义第一个文本框的背景、文本颜色*/ background:url(images/1.jpg) no-repeat 5px center #FFF; color:#999; } .pass{ /*定义第二个文本框的背景*/ background:url(images/2.jpg) no-repeat 5px center #FFF; } .btn01,.btn02{ width:60px; height:25px; border-radius:3px; /*设置圆角边框*/ border:1px solid #6b5d50; margin-left:30px; } .btn01{ background:#3bb7ea;} /*设置第一个按钮的背景色*/ .btn02{ background:#fb8c16;} /*设置第二个按钮的背景色*/ </style> </head> <body> <form action="dlDemo.jsp" method="post"> <p> <span>账号:</span> <input type="text" name="dname" value="admin" class="num" /> </p> <p> <span>密码:</span> <input type="password" name="dpass" class="pass"/> </p> <p> <input type="submit" class="btn01" value="登录"/> <a href="zc.jsp">没有账户?点击注册</a> </p> </form> </body> </html>
5,处理表单(dlDemo.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="com.db.user.User" %> <%@ page import="com.db.mydriver.UserDemo" %> <% 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 'dlDemo.jsp' starting page</title> </head> <body> <% request.setCharacterEncoding("utf-8"); User s = new User(); UserDemo us = new UserDemo(); //获取输入的用户名 String namees = request.getParameter("dname"); namees.trim(); s.setUname(namees); String passss = request.getParameter("dpass"); // 密码 passss.trim(); s.setUpass(passss); if(us.dl(s)!=0){ session.setAttribute("uname",s.getUname()); response.sendRedirect("dlshow.jsp"); }else{ response.sendRedirect("index.jsp"); } %> </body> </html>
6,注册界面(zc.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <base href="<%=basePath%>"> <title>CSS控制表单样式</title> <style type="text/css"> body{ font-size:12px; font-family:"宋体";} /*全局控制*/ body,form,input,p{ padding:0; margin:0; border:0;} /*重置浏览器的默认样式*/ form{ width:320px; height:150px; padding-top:20px; margin:50px auto; /*使表单在浏览器中居中*/ background:#f5f8fd; /*为表单添加背景颜色*/ border-radius:20px; /*设置圆角边框*/ border:3px solid #4faccb; } p{ margin-top:15px; text-align:center; } p span{ width:40px; display:inline-block; text-align:right; } .num,.pass{ /*对文本框设置共同的宽、高、边框、内边距*/ width:152px; height:18px; border:1px solid #38a1bf; padding:2px 2px 2px 22px; } .num{ /*定义第一个文本框的背景、文本颜色*/ background:url(images/1.jpg) no-repeat 5px center #FFF; color:#999; } .pass{ /*定义第二个文本框的背景*/ background:url(images/2.jpg) no-repeat 5px center #FFF; } .btn01,.btn02{ width:60px; height:25px; border-radius:3px; /*设置圆角边框*/ border:1px solid #6b5d50; margin-left:30px; } .btn01{ background:#3bb7ea;} /*设置第一个按钮的背景色*/ .btn02{ background:#fb8c16;} /*设置第二个按钮的背景色*/ </style> </head> <body> <form action="ZcDemo.jsp" method="post"> <p> <span>账号:</span> <input type="text" name="zname" value="admin" class="num" /> </p> <p> <span>密码:</span> <input type="password" name="zpass" class="pass"/> </p> <p> <input type="submit" class="btn01" value="注册"/> </p> </form> </body> </html>
7,注册实现(ZcDemo.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="java.sql.*" %> <%@ page import="com.db.user.User" %> <%@ page import="com.db.mydriver.UserDemo" %> <% 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 'ZcDemo.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% request.setCharacterEncoding("utf-8"); User s = new User(); UserDemo us = new UserDemo(); //获取输入的用户名 String namee = request.getParameter("zname"); namee.trim(); s.setUname(namee); String passs = request.getParameter("zpass"); // 密码 passs.trim(); s.setUpass(passs); if(us.AddData(s)!=0){ session.setAttribute("uname",s.getUname()); response.sendRedirect("Zcshow.jsp"); }else{ out.print("注册失败"); } %> </body> </html>
8,登录成功界面(dlshow.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 'dlshow.jsp' starting page</title> </head> <body> 欢迎用户:<%=session.getAttribute("uname")%>登录!!!! </body> </html>