JSPHomework


使用JSP链接数据库进行用户注册登录

(1)User
package home;

public class User {

	private String username;
	private String password;
	public User() {

	}

	public User(String username, String password) {
		this.username = username;
		this.password = password;
		
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String toString() {
		return "User [username=" + username + ", password=" + password + "]";
	}
    
}
(2)DBUtil
package home;

import java.io.*;
import java.sql.*;
import java.util.*;

import home.User;

public class DBUtil {
	// 操作数据库的工具类
		static {
			try {
				Class.forName("com.mysql.jdbc.Driver"); // 加载驱动
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
		}

		// 获取数据库连接对象
		public static Connection getDBConnection() {
			Properties pro = new Properties();
			InputStream input = null;
			Connection conn = null;
			try {
				input = DBUtil.class.getClassLoader().getResourceAsStream(
						"db.properties");
				pro.load(input);
				conn = DriverManager.getConnection(pro.getProperty("dburl"), pro);
			} catch (Exception e) {
				e.printStackTrace();
			}
			return conn;
		}

		// 注册用户
		public static boolean register(String username, String pwd,String regMoto) {
			Connection conn = getDBConnection();
			PreparedStatement ps = null;
			int count = 0;
			if (conn != null) {
				String sql = "insert into user(username,password,moto)values(?,?,?)";
				try {
					ps = conn.prepareStatement(sql); // 生成PreparedStatement,并将SQL发到DBMS中进行预编译
					ps.setString(1, username);
					ps.setString(2, pwd);
					ps.setString(3,regMoto);
					count = ps.executeUpdate(); // 执行SQL,返回影响的行数
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					try {
						ps.close();
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
			return count > 0;
		}

		// 登录
		public static User login(String username, String pwd) {
			User user = null;
			Connection conn = getDBConnection();
			PreparedStatement ps = null;
			ResultSet rs = null;
			if (conn != null) {
				String sql = "select username,password from user where username=? and password=?";
				try {
					ps = conn.prepareStatement(sql);
					ps.setString(1, username);
					ps.setString(2, pwd);
					rs = ps.executeQuery();
					if (rs.next()) { // 如果查询到了,则返回true
						String name = rs.getString("username");
						String password = rs.getString("password");
						user = new User(name, password);
					}
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					try {
						rs.close();
						ps.close();
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
			return user;
		}

	}


(3)Login.java
package home;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Login  extends HttpServlet{

	 @Override
	    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	    		throws ServletException, IOException {
	    	doPost(req,resp);
	    }
	    
	    @Override
	    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	    		throws ServletException, IOException {
	    	 String username = req.getParameter("username");  
	         String pwd = req.getParameter("pwd"); 
	         User password =new User(username,pwd);
	         if(pwd.equals(password)){  
	             req.setAttribute("user", "用户:"+username+",欢迎访问");  
	             req.getRequestDispatcher("/welcome.jsp").forward(req, resp);     
	          }    
	    }
}
(4)Register.java

package home;

import java.io.IOException;

import home.User;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Register extends HttpServlet{

	 @Override
	    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	    		throws ServletException, IOException {
	    	doPost(req,resp);
	    }
	    
	    @Override
	    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	    		throws ServletException, IOException {
	    	 req.setCharacterEncoding("utf-8");  
	         resp.setContentType("text/html;charset=utf-8");  
	         String username = req.getParameter("username");  
	         String pwd = req.getParameter("pwd");
	         String pwd2 = req.getParameter("pwd2");
	        if(username==""){  
	            req.setAttribute("user", "用户名不能为空");  
	            req.getRequestDispatcher("/register.jsp").forward(req, resp);  
	            return;  
	        }  
	        if(pwd==""){  
	            req.setAttribute("user", "密码不能为空!");  
	            req.getRequestDispatcher("/register.jsp").forward(req, resp);  
	            return;  
	        }  
	        if(!pwd.equals(pwd2)){  
	            req.setAttribute("user", "两次输入的密码不同");  
	            req.getRequestDispatcher("/regist.jsp").forward(req, resp);  
	            return;  
	        }   
	        req.setAttribute("user", "恭喜:"+username+",注册成功");  
	        req.getRequestDispatcher("/index.jsp").forward(req, resp);  	  
	    }  
}
		


(5)login.jsp
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>用户登录页面</title>
</head>
<body>
    <form action="loginURL" method="post" id="regForm">
         用户名:<input type="text" name="username" id="uname" placeholder="请输入用户名"><br/><br/>
         密码:<input type="password" name="pwd" id="pwd" placeholder="请输入密码"><br/><br/>
         <input type="submit" value="登录"/>
         <input type="reset" value="重置"/>    
         <a href=register.jsp target="_blank">注册</a>
    </form>     
</body>
</html>
(6)register.jsp
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>注册页面</title>
<script type="text/javascript" src="jquery-3.1.1.js"></script>
	<script type="text/javascript">
    $(function(){
    	$("#regForm").bind("submit",function(event) {
    		var uname=$("#username").val();
    		var pwd=$("#pwd").val();
    		if (uname=="") {
              alert("用户名不能为空!");
              event.preventDefault();    
              return false;
    		} 
    		if(pwd.length<6){
    			alert("密码长度不能小于6位!");
    			event.preventDefault();
    			return false;
    		}
    		if (form.pwd.value!=form.pwd2.value)    {    
    		    alert("两次输入的密码不同!"); 
    		    return false;
    		}
    		else return true;
    	});	
    });


	</script>
</head>
<body>
     <form action="serverURL" method="post" id="regForm">
         注册用户名:  <input type="text" name="username" id="username" placeholder="请输入用户名"><br/><br/>
         注册密码:    <input type="password" name="pwd" id="pwd" placeholder="请输入密码"><br/><br/>
         确认密码:   <input type="text"name="pwd2" id="pwd2" placeholder="再次输入密码"> <br/><br/> 
                  <input type="submit" value="注册" >
                  <input type="reset" value="重置">
    </form>
</body>
</html>
(7)fail
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>失败页面</title>
</head>
<body>
   <h4>用户名或密码错误,请重新登录!</h4>
   <a href="http://HelloWebDemo/homework/login.jsp">点击跳转</a>

</body>
</html>
(8)welcome 
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>登录成功页面</title>
</head>
<body>
  <% 
      String sessionAttr=(String)session.getAttribute("uname");
  %> 
   <h4>欢迎<%=sessionAttr%>登录!</h4>

</body>
</html>
(9)Web
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>HelloWebDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
     <servlet-name>firstServlet</servlet-name>
     <servlet-class>home.LoginAndRegister</servlet-class>  
  </servlet>
  
  <servlet-mapping>
     <servlet-name>firstServlet</servlet-name>
     <url-pattern>/homework/loginURL</url-pattern>
  </servlet-mapping>
</web-app>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值