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>

  

posted @ 2021-04-14 18:41  于与雨  阅读(79)  评论(0编辑  收藏  举报