간단한 자바 웹 프로젝트 만 추가하여 달성

데이터베이스 연결이 결정되었습니다

요구 사항 :

로그인 계정 1 : 청구항 6 내지 12의 문자, 숫자, 밑줄 문자 만이 시작될 수있다 (1 분)

2 암호 : "•"또는 "*"를 표시하는 데 필요한 입력 자리 암호, 숫자를 8 개 이상의 문자를 필요한 것을 나타냅니다. (1 점)

3 성별 : 하나의 상자를 달성 또는 드롭 다운 상자에서 옵션은 "남성"또는 "여성"필요 (1 점)

과학 번호 4 : 처음에 요구 8 자리, 제 4 비트 "2018", 그 학생 ID를 입력 (1 분)

5 이름 : 이름을 입력;

5 E 메일 : 올바른 형식 [email protected] 결정 요청 (MIN. 1)

6 데이터베이스에 대한 학생들의 개인 정보를 저장하기 위해 "추가"버튼을 클릭합니다. (3 점)

7 데모는 데이터베이스에 연결할 수 있습니다. (2 점)

콩 주머니

패키지 text.jsp.bean; 
공용 클래스이 UserBean { 
	개인 문자열 아이디; 
	개인 문자열 비밀 번호; 
	개인 문자열 섹스; 
	개인 문자열 이름; 
	개인 문자열 번호; 
	개인 문자열 메일; 
	개인 문자열 위안; 
	개인 문자열 XI; 
	개인 문자열 클래스; 
	개인 문자열 시간; 
	개인 문자열 장소; 
	공공 문자열 getId () { 
		반환 아이디; 
	} 
	공개 무효 setId (문자열 ID) { 
		this.id = ID; 
	} 
	공공 문자열하려면 getPassword () { 
		반환 비밀 번호; 
	} 
	공공 무효의 SETPASSWORD (문자열 암호) { 
		this.password = 암호; 
	}
	공공 문자열 getSex는 () { 
		섹스를 반환; 
	} 
	공공 무효의 setSex (문자열 섹스) { 
		this.sex = 섹스; 
	} 
	공공 문자열 getName () { 
		반환 이름; 
	} 
	공공 무효에서는 setName (문자열 이름) { 
		this.name = 이름; 
	} 
	공공 문자열 getNumber () { 
		반환 번호; 
	} 
	공공 공극 setNumber (문자열 번호) { 
		this.number = 번호; 
	} 
	공공 문자열 getMail는 () { 
		메일을 반환; 
	} 
	공공 무효의 setMail (문자열 메일) { 
		this.mail = 메일; 
	} 
	공공 문자열 getYuan () { 
		반환 위안; 
	}
	공공 무효 setYuan (문자열 위안) {
		this.yuan = 원; 
	} 
	공공 문자열 getXi는 () { 
		XI를 반환; 
	} 
	공공 공극 setXi (문자열 XI) { 
		this.xi = XI; 
	} 
	공공 문자열 getClasses () { 
		반환 클래스; 
	} 
	공개 무효 setClasses (문자열 클래스) { 
		this.classes의 클래스 =; 
	} 
	공공 문자열 다음 getTime는 () { 
		시간을 반환; 
	} 
	공공 공극 setTime (문자열 시간) { 
		이거 펴 시간 =; 
	} 
	공공 문자열 getPlace는 () { 
		장소를 반환; 
	} 
	공공 무효 setPlace (문자열 장소) { 
		this.place = 장소;
	}
	대중이 UserBean (문자열 ID, 문자열 암호, 문자열 섹스, 문자열 이름, 문자열 번호, 문자열 메일, 문자열 위안, 문자열 XI, 문자열 클래스 문자열 시간 문자열 장소) { 
		this.id = 아이디; 
		this.password = 암호; 
		this.sex = 섹스; 
		this.name = 이름; 
		this.number = 번호; 
		this.mail = 메일; 
		this.yuan = 원; 
		this.xi = XI; 
		this.classes = 클래스; 
		이거 펴 시간 =; 
		this.place = 장소; 
	} 
}

  DAO 패키지

패키지 text.jsp.dao; 
수입 java.sql.Connection의; 
수입의 java.sql.ResultSet; 
수입은 java.sql.SQLException; 
수입 java.sql.Statement의; 
수입 text.jsp.bean.UserBean; 
수입 text.jsp.util.DBUtil; 

공용 클래스 UserDao { 
	공공 부울 추가 기능 (이 UserBean 사용자) { 
		문자열 SQL = "text1021 (아이디, 비밀번호, 성별, 이름, 번호, 메일, 위안, XI, 클래스, 시간, 장소) 값 ( '삽입'+ user.getId () + "", ""+ user.getPassword () + "", ""+ user.getSex () + "", ""+ user.getName () + "", ""+ user.getNumber () + "", ""+ user.getMail () + "", ""+ user.getYuan () + "", ""+ user.getXi () + "", ""+ user.getClasses () + " ', 
		문 상태 = NULL; 
		부울 F = 거짓; 
		INT의 A = 0; 
		
		시도 {          
			상태 = conn.createStatement (); 
			A = state.executeUpdate (SQL); 
		} 캐치 (예외 전자) {            
			e.printStackTrace (); 
		마지막} { 
				    
			DBUtil.close (주 코네티컷); 
		} 
		
		경우 (a> 0) { 
			F = TRUE; 
		} 
		F를 반환; 
	}		 
	
}

  폴더의 유틸리티 패키지

패키지 text.jsp.util; 
수입 java.sql.Connection의; 
수입 java.sql.DriverManager의; 
수입의 java.sql.ResultSet; 
수입은 java.sql.SQLException; 
수입 java.sql.Statement의; 

공용 클래스 DBUtil 
{    
	개인 정적 연결 사기꾼; 
    개인 정적 문 STM; 
    개인 정적의 ResultSet RS; 
	개인 정적 문자열 클래스 명 = "com.mysql.cj.jdbc.Driver"; 
	개인 정적 문자열 URL = "JDBC한다 : mysql : // localhost를 : 3306 / GS useUnicode = TRUE & characterEncoding = UTF-8 serverTimezone = GMT && useSSL = 거짓 && allowPublicKeyRetrieval = 사실"; 
	공공 연결 getCon () {    	   
    	시도 { 
    		Class.forName을 (클래스 명); 
    		에서 System.out.println ( "
    	} 
    	캐치 (ClassNotFoundException가 전자) { 
    		e.printStackTrace (); 
    	} 
    	{시도 
    	    ( "123456", "루트"URL) 사기꾼 = DriverManager.getConnection를을; 
    	    에서 System.out.println ( "数据库连接成功"); 
    	    
    	} 
    	캐치 (예외 전자) { 
    	    e.printStackTrace (System.err에); 
    		사기꾼 = 널 (null); 
    	} 
    	죄수를 반환; 
    } 
	공공 정적 무효 가까운 (문 STM, 연결 CONN) { 
		경우 (! STM = NULL) { 
			{시도 
				) (stm.close을; 
			} 캐치 (예외 : SQLException 전자) { 
				e.printStackTrace (); 
			} 
		} 
		경우 (코네티컷 주 = 널!) { 
			{시도 
				conn.close를 ();
			} 캐치 (예외 : SQLException 전자) { 
				e.printStackTrace (); 
			} 
		} 
	} 
	
	공공 정적 무효 가까운 (의 ResultSet rs는 문 STM, 연결 콘은) { 
		경우 (! RS는 = null가) { 
			{시도 
				) (rs.close을; 
			} 캐치 (예외 : SQLException 전자) { 
				e.printStackTrace (); 
			} 
		} 
		경우 (! STM = NULL) { 
			{시도 
				) (stm.close을; 
			} 캐치 (예외 : SQLException 전자) { 
				e.printStackTrace (); 
			} 
		} 
		경우 (사기꾼 = 널!) { 
			시도 { 
				con.close (); 
			} 캐치 (예외 : SQLException 전자) { 
				e.printStackTrace (); 
			} 
		} 
	} 
}

  서블릿 包

패키지 text.jsp.servlet; 

수입 때 java.io.IOException; 
수입 javax.servlet.ServletException; 
수입 javax.servlet.annotation.WebServlet; 
수입 인 javax.servlet.http.HttpServlet; 
수입 나오는 javax.servlet.http.HttpServletRequest; 
수입의 javax.servlet.http.HttpServletResponse; 

수입 text.jsp.dao.UserDao; 
수입 text.jsp.bean.UserBean; 

/ ** 
 * 서블릿 구현 클래스 textservlet 
 * / 
@WebServlet ( "/ textservlet") 
공용 클래스 textservlet는 HttpServlet을 연장 { 
	개인 정적 최종 길이의 serialVersionUID = 1L; 
       
    / ** 
     * @see HttpServlet을 # HttpServlet을 () 
     * /  
    공공 textservlet () {
        슈퍼 ();
        // TODO 자동 생성 생성자 스터브 
    } 
    UserDao userDao = 새로운 UserDao (); 
	/ ** 
	 * @see HttpServlet을 #의 doGet (HttpServletRequest 요청, HttpServletResponse 응답) 
	 * / 
	보호 공극의 doGet (HttpServletRequest 요청, HttpServletResponse 응답) ServletException을, 공개 IOException { 
		// TODO 자동 생성 방법 스텁 
		request.setCharacterEncoding ( "UTF-8" ); 
		response.setCharacterEncoding ( "UTF-8"); 
		response.setContentType ( "textml; 문자셋 = UTF-8"); 
		response.setHeader ( "컨텐츠 타입", "textml; 문자셋 = UTF-8"); 
		 문자열 ID = request.getParameter ( "GS1"); 
		 문자열 암호 = 요청.
		 문자열 섹스 = request.getParameter ( "P");
		 문자열 번호 = request.getParameter ( "GS5"); 
		 문자열 메일 = request.getParameter ( "gs6"); 
		 문자열 위안 = request.getParameter ( "GS7"); 
		 문자열 XI = request.getParameter ( "gs8"); 
		 문자열 클래스 = request.getParameter ( "GS9"); 
		 문자열 시간 = request.getParameter ( "P2"); 
		 문자열 장소 = request.getParameter ( "gs11"); 
		 이 UserBean이 UserBean = 새로운이 UserBean (아이디, 비밀번호, 성별, 이름, 번호, 메일, 위안, XI, 클래스, 시간, 장소) 
		 경우 (userDao.add (이 UserBean)) { 
				request.getRequestDispatcher ( "success.jsp") 전방 (요청, 응답).; 
			} 
			다른 { 
				request.getRequestDispatcher ( "fail.jsp") 전방 (요청, 응답).;
			}

	 * @see HttpServlet을 #의 doPost (HttpServletRequest 요청, HttpServletResponse 응답) 
	 * / 
	보호는 공극의 doPost (HttpServletRequest 요청, HttpServletResponse 응답) ServletException을 IOException을 발생 { 
		// TODO 자동 생성 방법 스터브 
		의 doGet (요청, 응답); 
	} 

}

  JSP 파일

<% 페이지 언어 @ = "자바"의 contentType = "text / html과; 문자셋 = UTF-8" 
    pageEncoding = "UTF-8"%> 
<! DOCTYPE HTML> 
<HTML> 
<HEAD> 
<메타 문자 집합 = "UTF-8 "> 
여기에 <제목> 삽입 제목 </ 제목> 
</ head> 
<body> 
<양식 방법 ="게시물 "행동 ="textservlet "onsubmit ="반환 확인 () "> 
<DIV> 
GS1 = 대한 <라벨" " >登录账号</ 라벨> 
<input 유형 이름 = "GS1"> "名用户输入请"= "문자"ID = "GS1"자리 = 
</ div> 
<div> 
= "GS2"는 <라벨>登录密码</ 라벨> 
<input 타입 = "암호 "ID ="GS2 "자리 ="请输入密码"클래스 ="입력 텍스트 입력 길이의 "이름 ="GS2 "> 
</ DIV> 
<DIV> 
GS3"= 대한 <라벨 ">姓别: </ 라벨>  
<SELECT NAME = "P">
  <옵션 값 = "유모">男</ 옵션> 
  <옵션 값 = "네바다">女</ 옵션> 
<선택> 
</ DIV> 
<DIV> 
姓名<= "GS4"에 대한 라벨> </ 라벨 > 
<입력 유형 = "텍스트"ID = "GS4"자리 = "请输入姓名"클래스 = "입력 텍스트 입력 길이의"이름 = "GS4"> 
</ DIV> 
<DIV> 
에 대한 <라벨 = "GS5" >学号: </ 라벨> 
<입력 유형 = "텍스트"ID = "GS5"자리 = "请输入学号"클래스 = "입력 텍스트 입력 길이의"이름 = "GS5"> 
</ DIV> 
<DIV > 
= "gs6"는 <라벨>电子邮件</ 라벨> 
<input 타입 = "텍스트 "ID ="gs6 "자리 =" 전자 메일을 입력하십시오 "클래스 ="입력 - 텍스트 입력 - 롱 "이름 ="GS6 "> 
</ DIV> 
<DIV> 
> 단과 대학"GS7 = 대한 <라벨 "</ 라벨>
<입력 유형 = "텍스트"ID = "GS7"자리 = " 클래스 ="입력 - 텍스트 입력 - 롱 "이름 ="GS7 "대학은 어디에서 입력하십시오">  
</ DIV> 
<DIV>
</ 라벨 : 줄 <= "를 GS8 모듈 게이트웨이"에 대한 라벨> > 
<입력 유형 = "텍스트"ID = "GS8"자리 = "입력 라인 제발 여기서"클래스 = "입력 텍스트 입력 긴"이름 = "GS8"> 
</ DIV> 
<DIV> 
= "GS9에 대한 <라벨 "> 클래스 여기서 </ 라벨> 
유형의 <입력 ="텍스트 "는 위의 ID를 언급 한 id ="GS9 "자리 ="클래스를 입력하십시오 여기서 "클래스 ="입력 텍스트 입력 - 롱 "이름 ="GS9 "> 
</ DIV> 
< DIV> 
= "GS10"> 년 (세션)을 시작하기위한 <라벨 : </ 라벨> 
<이름 선택 = "P2"> 
  <옵션 값 = "2014 "> 2014 </ 옵션> 
  <옵션 값 ="2015 "> 2015 </ 옵션> 
   <옵션 값 ="2016 "> 2016 </ 옵션> 
  = <옵션 값"2017 "> 2017 </ 옵션> 
   <옵션 값 = "2018"> 2018 </ 옵션>
  <옵션 값 = "2019"> 2019 </ 옵션> 
<선택> 
</ DIV>에서 getElementById ( "GS2"); 
	VAR 메일 = document.getElementById를 ( "gs6"); 
<DIV> 
<= "gs11"에 대한 라벨>生源地: </ 라벨>
<input 타입 = "텍스트"ID = "gs11 'NAME ="gs11 "> 
</ div> 
<div> 
</ 라벨>备注<="GS12 "레이블> 
<input 타입 ="텍스트 "ID ="GS12 "이름 ="GS12 "> 
</ DIV> 
<DIV> 
<입력 유형 =" "= 값" "ID ="법사 "이름 ="법사를 제출添加"> 
</ div> 
</ FORM> 
<! -输入字段验证部分-> 
<스크립트 유형 = "텍스트 / 자바 스크립트"> 
기능 검사 () { 
	var에 이름 = document.getElementById를 ( "GS1"); 
	VAR 암호 = document.getElementById를 ( "GS2"); 
	VAR 번호 = document.getElementById를 ( "GS5");
	VAR sReg = /[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+$/ ; // 정규식 
	학생 수는 2018로 시작 여부 // 결정
		경고 ( '영어 문자로 시작하는 6 ~ 12 영어 문자 또는 숫자에서 계좌 번호를 입력합니다'); 
		gs1.focus를 (); 
		false로 반환; 
	} 
	//를 결정하는 단계를 더 포함하는 문자 사용자 이름 여부를 
	경우 (/.* [\ u4e00- \ u9fa5] + * $ / 테스트 (username.value)) {... 
		경고 () '계정의 사용자 이름이 문자를 포함 할 수 없습니다'; 
		gs1.focus (); 
		false로 돌아 가기; 
	} 
	// 사용자 이름은 문자로 시작 여부를 결정합니다 
	(있는 경우 ! 때는 isNaN (username.value [0])) { 
		(경고 '로그인 계정 문자로 시작하세요'); 
		gs1.focus은 () 
		; false로 반환 
	} 
	암호의 수를 분석 // 
	.length 경우 ((password.value) !. = 8) { 
		; 경고 () '암호 팔 영숫자해야한다' 
		gs2.focus은 (); 
		false로 반환; 
	} 
     IF (number.value을 < "20180000"|| number.value> "20189999") 
				{ 
				 경고 ( "2018의 시작 부분에서 8 비트의 연구");		        
	             gs5.focus은 () 
	             ; false로 반환 
				} 

	// 유효한 전화 번호 여부를 확인 
	
	// 사서함 형식을 결정이 올바른지 
	IF {(sReg.test (mail.value)!)	 
		경고 ( 'E - 메일 형식 오류'); 
		(gs6.focus ); 
		false로 반환; 
	}	 
} 
</ SCRIPT> 
<! - 최종 확인 -> 
</ BODY> 
</ HTML>

  

추천

출처www.cnblogs.com/xp-thebest/p/11716986.html