-
JSP 게시판 만들기 강좌 -6강Programming/JAVA 2022. 9. 13. 03:11
li class active 는 하나만
input name은 나중에 서버 프로그램 작성할 때 사용하기에 매우 중요함. 대소문자 구분하면서 넣기 ! JSP 게시판 만들기 강좌 3강 - 회원 데이터베이스 구축하기 jsp advanced development tutorial #3
1. Mysql community download
- mysql installer download
-> 설치 과정에서 root 비밀번호 잘 외워두기
2. 설치 후 Mysql Command LIne Client 접속
-> root 비밀번호 작성
>>CREATE DATABASE BBS; 생성
USE BBS; 데이터베이스 접속
CREATE TABLE USER (
userID VARCHAR(20), ( 문자 20개 들어갈 수 있는 공간 )
userPassword VARCHAR(20),
userName VARCHAR(20),
userGender VARCHAR(20),
userEmail VARCHAR(50),
PRIMARY KEY (userID) (( user id는 중복되면 안되기 때문에 primary key로 넣어줌)
); >> show tables;
>> desc user; ( user테이블안에 어떤 속성들이 들어갔는지 알 수 있음 )
>> INSERT INTO USER VALUES(‘gildong’,’12344’,’’홍길동’,’남자’,’gildong@naver.com’);
>> select * from user
>> commit;
>> desc user;
Db를 jsp에서 담기 - java resources 안에 src폴더 안에 user 라는 패키지 만들기 User 클래스 만들기
- 변수는 데이터베이스 테이블의 이름과 똑같이 하는 게 깔끔 !
- private String userID; 이렇게 다 넣어줌 - 마우스 오른쪽source generate getters setters all 만들어주면 전부다 함수만듬
한명의 회원데이터 다룰수있는 데이터베이스 및 자바빈지가 완성이 되었다고 할 수 있음
- 하나의 데이터 관리 처리할 수 있는 기법을 jsp 에서 구현하는 것을 자바 빈즈라고 함 !
> 데이터베이스 설치, 유저테이블 구축, 자바빈즈로 유저클래스 만들어줌 JSP 게시판 만들기 강좌 4강 - 로그인 기능 구현하기
jsp에서 회원데이터베이스테이블에 접근할 수 있도록 DAO 만들어 줘야함
database access object 회원정보 불러오거나 넣을 때 사용 user 패키지 아래 UserDAO.java 클래스 만들어줌
Ctrl + shift + o : java.sql.connection 등의 외부 라이브러리 추가
driver는 mysql에 접속할 수 있도록 매개체 역할 라이브러리아래는 UserDAO.java
package user; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class UserDAO { private Connection conn; //데이터베이스에 접근하게 해주는 객체 private PreparedStatement pstmt; private ResultSet rs; //정보담을수있는 객체 public UserDAO() { try { String dbURL = "jdbc:mysql://localhost:3306/BBS"; String dbID = "root"; String dbPassword = "root4406@"; Class.forName("com.mysql.jdbc.Driver");//my sql드라이버 찾을 수 있또록 conn = DriverManager.getConnection(dbURL,dbID,dbPassword); }catch(Exception e) { e.printStackTrace(); } } public int login(String userID, String userPassword) { String SQL = "SELECT userPassword FROM USER WHERE userID = ?"; try { pstmt = conn.prepareStatement(SQL); pstmt.setString(1, userID); rs = pstmt.executeQuery(); if(rs.next()) { if(rs.getString(1).equals(userPassword)) return 1; //로그인 성공 else return 0; //로그인 불일치 } return -1; //아이디가 없음 }catch(Exception e) { e.printStackTrace(); } return -2; //데이터베이스 오류 } }
- 객체 만들었을 때 자동으로 데이터베이스 커넥션 되도록, 트라이 캐치로 예외처리, 오류 뭔지 출력
- 3306 까지 내 pc sql서버 자체 의미, bbs라는 디비에 접속할 수 있도록
dbid root 계정에 비밀번호
Class.forName("com.mysql.jdbc.Driver"); mysql 접속하도록 연결해주는 라이브러리
아래는 loginAction.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="user.UserDAO" %> <%@ page import="java.io.PrintWriter" %> <% request.setCharacterEncoding("UTF-8"); %> <jsp:useBean id="user" class="user.User" scope="page"/> <jsp:setProperty name="user" property="userID"/> <jsp:setProperty name="user" property="userPassword"/> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSP 게시판 웹 사이트</title> </head> <body> <% UserDAO userDAO = new UserDAO(); int result = userDAO.login(user.getUserID(), user.getUserPassword()); if (result==1){ PrintWriter script = response.getWriter(); script.println("<script>"); script.println("location.href='main.jsp'"); script.println("</script>"); } else if (result == 0) { PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('비밀번호가 틀립니다.')"); script.println("history.back()"); script.println("</script>"); } else if (result == -1) { PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('존재하지 않는 아이디입니다.')"); script.println("history.back()"); script.println("</script>"); } else if (result == -2) { PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('데이터베이스 오류입니다.')"); script.println("history.back()"); script.println("</script>"); } %> </body> </html>
<
마지막으로 driver 연결
구글링 mysql jdbc driver
하 mysql jdbc driver 을 구글링하면 이제 강의와 달리 connecter을 따로 다운로드 받도록 뜨지 않는다.
그 전에 똑같이 다운로드한 mysql installer일 뿐.. 그래서 지금 내 버전에 맞는 8.0.3ver을 찾느라 꽤나 고생하다 드디어 찾아서 파일에 넣고 module path에 넣어주었더니 제대로 동작한다. 이게 맞는 건가 싶기도 하지만. 골머리 앓던걸 해결해 우선은 마음이 놓인다.
>> 특정 게시물을 찾았고, 또 다른 jar 다운로드 사이트에서 내 jdk 와 같은 버전의 jar파일을 찾아 다운로드해서 폴더에 임시적으로 넣어줬음.
8월 28, 2022 11:19:04 오전 org.apache.jasper.servlet.TldScanner scanJars INFO: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다. 8월 28, 2022 11:19:04 오전 org.apache.catalina.core.StandardContext reload INFO: 이름이 [/BBS]인 컨텍스트를 다시 로드하는 것을 완료했습니다.
> 추후 해결하기
7강 접속한 회원 세션 관리하기
'Programming > JAVA' 카테고리의 다른 글
스프링부트 3 백엔드 개발자 되기 : 시작하는 과정 (2) (0) 2023.08.17 스프링부트 프로젝트 게시판 (0) 2023.05.27 [ JavaSpring ]Whitelabel Error Page 해결방법 (0) 2023.04.28 [ JavaSpring ] Hello world 출력 (0) 2023.04.28 JAVA (0) 2022.09.13