Jsp+JavaBean 모드의 로그인 등록 시스템

9047 단어 jsp
이전 순수한 JSP 모드의 로그인 등록 시스템에서 우리는 inc.jsp를 통해 데이터베이스 설정 파라미터를 저장했다. 데이터베이스를 호출할 때마다 이 파일을 포함하고 자신의 데이터베이스 연결을 만든 다음에 서로 다른 명령을 실행하여 해당하는 결과집이나 다른 반환값을 되돌려주었다. 데이터베이스 조작에 관한 모든 과정에서 우리는 중복된 코드를 작성하여 비슷한 조작을 했다.우리는 이 코드들을 자바빈에 추상화할 수 있다. JSp를 사용하여 자바빈을 호출하면 코드의 가독성을 강화하고 코드의 중복을 낮추며 시스템의 중용성을 높일 수 있다.
먼저 자바빈을 씁니다. 일반적인 자바빈에게 변수를 정의하고 Getter/setter 함수를 추가하면 완전한 자바빈입니다.그러나 보통 이것뿐만 아니라 현재 자바빈의 목적에 따라 독특한 조작 함수를 추가해야 한다.이 단원에서 개발한 DBAccess.자바는 각기 다른 목적을 가진 자바빈으로 데이터베이스 조작의 자바빈으로서 데이터베이스의 매개 변수와 변수를 저장할 수 있을 뿐만 아니라 데이터베이스 조작도 할 수 있다.
이 모델의 변화는 주로 두 개의 자바빈을 개발했는데 하나는 데이터베이스 처리 클래스인 DBAccess이다.java, 다른 하나는 업무 논리 클래스 UserBean.java      
예를 들어 데이터베이스 조작을 하려면 먼저 데이터베이스 링크를 만들고 유사한 업데이트 SQL 함수를 만들어야 한다. 이 문제는 이 두 개만 있으면 충분하다.
네 개의 문건을 중점적으로 수정했는데,
DBAccess.java
이javaBean에서 데이터베이스에 대한 모든 조작을 완성했습니다. UserBean.자바의 방법은 이 안의 방법으로 데이터베이스를 조작하고, 그 두 JSp 페이지는 순서대로 UserBean의 방법으로 조작한다.
이렇게 해서 데이터베이스 조작에 대한 봉인을 실현했고 코드의 재사용을 실현했다. jsp 페이지에서 자바 코드의 양을 최대한 낮추고 데이터의 조작을 완전히 제거했다. 모든 stconn rs는 DBAccess에서 완성했다. 이것은 한국의 servlet 컨트롤러 안에 해당하는 strs conn이 이미 함수를 닫았다.생각이 다르죠.
공사 훈련 그 종목도 한씨의 조작 방식을 채택했다.
확실히 strs conn과 닫기 함수, 추가 삭제try catch는 모두 자바빈에서 완성해야 합니다. 그러면 더욱 좋습니다.
package com.gxm.jspandbean;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DBAccess {
	String driver = "com.mysql.jdbc.Driver";
	String url    = "jdbc:mysql://localhost:3306/login";
	String user   = "root";
	String password = "admin";
	Connection conn = null;
	Statement  st   = null;
	ResultSet  rs   = null;
	
	public String getDriver() {
		return driver;
	}
	public void setDriver(String driver) {
		this.driver = driver;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getUser() {
		return user;
	}
	public void setUser(String user) {
		this.user = user;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Connection getConn() {
		return conn;
	}
	public void setConn(Connection conn) {
		this.conn = conn;
	}
	public Statement getSt() {
		return st;
	}
	public void setSt(Statement st) {
		this.st = st;
	}
	public ResultSet getRs() {
		return rs;
	}
	public void setRs(ResultSet rs) {
		this.rs = rs;
	}
	
	/*
	 * @        
	 * @return boolean
	 */
	public boolean creatConn(){
		boolean flag = false;
		try{
			Class.forName(driver);
			conn = DriverManager.getConnection(url,user,password);
			//  ,           ,         
			flag = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		return flag;
	}
	
	/*
	 * @       
	 * @return boolean
	 */
	public boolean update(String sql){
		boolean flag = false;
		try{
			st = conn.createStatement();
			
			int res = st.executeUpdate(sql);
			if(0!=res){
				flag = true;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return  flag;
	}
	
	
	/*
	 * @         
	 * @return boolean
	 */
	
	public boolean query(String sql){
		boolean flag = false;
		try{
			st = conn.createStatement();
			
			rs = st.executeQuery(sql);
			
			flag = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		return  flag;
	}
	
	/*
	 * @      next  
	 * @return boolean
	 */
	
	public boolean next(){
		boolean flag = false;
		try{
			if(rs.next()) flag = true;
		}catch(Exception e){
			e.printStackTrace();
		}
		return flag;
	}
	
	/*
	 * @        ,        
	 * @param field    
	 * @return String
	 */
	
	public String getValue(String field){
		String value = null;
		try{
			if(rs!=null){
				value = rs.getString(field);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return value;
	}
	
	public void close() {
		try{
			if(rs!=null){
				rs.close();
				rs = null;
			}
			
			if(st!=null){
				st.close();
				st = null;
			}
			
			if(conn!=null){
				conn.close();
				conn = null;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}
	
}

 
UserBean.java
 
package com.gxm.jspandbean;
//                         
//       ,         st rs       ,     
public class UserBean {
	/*
	 * 
	 * @param username
	 * @param password
	 */
	
	public boolean isvalid(String username,String password){
		boolean flag = false;
		DBAccess db = new DBAccess();
		if(db.creatConn()){
			String sql = "select * from users where username ='"+username+"' and password = '"+password+"' ";
			
			db.query(sql);
			
			if(db.next()){
				flag = true;
			}
			db.close();
		}
		return flag;
	}
	
	/*
	 * @                 
	 */
	
	public boolean isExist(String username){
		boolean flag = false;
		DBAccess db = new DBAccess();
		if(db.creatConn()){
			String sql = "select * from users where username = '"+username+"'";
			db.query(sql);
			if(db.next()){
				System.out.println("       ");
				flag = true;
			}
			db.close();
		}
		
		return flag;
	}
	
	/*
	 * @      
	 */
	
	public boolean add(String username,String password){
		boolean flag = false;
		DBAccess db = new DBAccess();
		//            
		if(db.creatConn()){
			String sql = "insert into users(username,password) values('"+username+"','"+password+"')";
			
			if(db.update(sql)){
				flag = true;
			}
			db.close();
		}
		
		return flag;
	}
}

registerCheck.jsp
<%@ page language="java" import="java.util.*,java.sql.*,com.gxm.jspandbean.*;" pageEncoding="utf-8"%>
<%
		String path = request.getContextPath();
		String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
		String email = request.getParameter("email");
		String username = request.getParameter("username");
		String password1 = request.getParameter("password1");
		String password2 = request.getParameter("password2");
		
		if(username == null||password1 == null|| password2 == null||!password1.equals(password2)){
			response.sendRedirect("register.jsp");
		}
		
		boolean flag = false;
		
		UserBean ub = new UserBean();
		if(ub.isExist(username)){
			//               
			response.sendRedirect("register.jsp");
			
		}else if(ub.add(username,password1)){
			flag = true;
			response.sendRedirect("login.jsp");
		}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'registerCheck.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>
    This is my JSP page. <br>
  </body>
</html>

 
loginCheck.jsp
<%@ page language="java" import="java.util.*,java.sql.*,com.gxm.jspandbean.*;" pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	//           ,javascript           ,            ,         
	if(username == null||password ==null){
		response.sendRedirect("login.jsp");
	}
	boolean flag = false;
	
	UserBean ub = new UserBean();
	if(ub.isvalid(username,password)){
		flag = true;
	}
	
	if(flag){
		response.sendRedirect("welcome.jsp?user="+username);
	}else{
		response.sendRedirect("login.jsp?info=error");
	}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'loginCheck.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>
  
  </body>
</html>

 
 

좋은 웹페이지 즐겨찾기