Loading...

Web / / 2022. 2. 23. 11:33

Web 11강. 동적 페이지 만들기

반응형

META-INF와 WEB-INF 폴더는

외부 접근 불가 폴더로 지정되어 있다.

 

WEB-INF 폴더에 라이브러리 추가하면

build path를 지정해주지 않아도

자동으로 인식해준다.

 

-- 1. 테이블 생성
CREATE table userInfo(
    id number primary key,
    name varchar2(20),
    phone varchar2(20)
);

CREATE SEQUENCE SEQ_USERINFO INCREMENT BY 1 START WITH 1;

INSERT INTO userInfo(id, name, phone) VALUES(SEQ_USERINFO.nextval, '홍길동', '01011112222');
INSERT INTO userInfo(id, name, phone) VALUES(SEQ_USERINFO.nextval, '임꺽정', '01033334444');
INSERT INTO userInfo(id, name, phone) VALUES(SEQ_USERINFO.nextval, '장보고', '01055556666');

-- 커밋필수
COMMIT;
// 2. 쿼리스트링 파싱(끝)
int id = Integer.parseInt(request.getParameter("id"));
System.out.println("id : " + id);
// 3. DB 연결(끝)
Class.forName("oracle.jdbc.driver.OracleDriver"); // 라이브러리 path 잡기
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "SCOTT", "TIGER");
System.out.println("DB 연결 완료");
// 4. SELECT로 id, name, phone 받기
String sql = "SELECT id, name, phone FROM userInfo WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id); // PK로 검색해서 무조건 데이터 1건 나옴

ResultSet rs = pstmt.executeQuery(); // 버퍼에 담겨서 자동으로 flush

// while을 안탈수도 있으니까 초기화를 무조건 해줘야함
String name = null;
String phone = null;

while(rs.next()) {
	// id = rs.getInt("id");
	name = rs.getString("name");
	phone = rs.getString("phone");
}
<!--5. 뿌려주기-->
<h1>회원정보 페이지입니다. - 인증 필요</h1>
<h3>아이디 : <%= id %> / 이름 : <%= name %> / 전화번호 : <%= phone %></h3>
<hr />

 


 

<%@page import="org.apache.tomcat.dbcp.dbcp2.PStmtKey"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<ul>
		<li><a href="/user/login.html">로그인 페이지</a></li>
		<li><a href="/user/join.html">회원가입 페이지</a></li>
		<li><a href="/user/userInfo.jsp">회원정보 페이지</a></li>
		<li><a href="/post/list.html">글 목록 페이지</a></li>
	</ul>

	<%
	// 1. 테이블 생성(끝)
	// 2. 쿼리스트링 파싱(끝)
	int id = Integer.parseInt(request.getParameter("id"));
	System.out.println("id : " + id);
	// String name = null;
	// String phone = null;
	
	try {
		// 3. DB 연결(끝)
		Class.forName("oracle.jdbc.driver.OracleDriver"); // 라이브러리 path 잡기
		Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "SCOTT", "TIGER");
		System.out.println("DB 연결 완료");

		// 4. SELECT로 id, name, phone 받기
		String sql = "SELECT id, name, phone FROM userInfo WHERE id = ?";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, id); // PK로 검색해서 무조건 데이터 1건 나옴

		ResultSet rs = pstmt.executeQuery(); // 버퍼에 담겨서 자동으로 flush
		
		// while을 안탈수도 있으니까 초기화를 무조건 해줘야함
		String name = null;
		String phone = null;
		
		while(rs.next()) {
			// id = rs.getInt("id");
			name = rs.getString("name");
			phone = rs.getString("phone");
		}

		// conn.close();

	} catch (Exception e) {
		System.out.println("오류 : " + e.getMessage());
	}

	// 5. 뿌려주기
	%>

	<h1>회원정보 페이지입니다. - 인증 필요</h1>
	<h3>아이디 : <%= id %> / 이름 : <%= name %> / 전화번호 : <%= phone %></h3>
	<hr />
</body>
</html>

 

 

 

[출처]

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com


메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형