<JSP를 들어가기 전에....>
MySQL DATABASE에 연결해 보기.
전 포스팅에서 처럼 Dynamic Web Project를 새로 생성(이름은 L01JDBC)
그 다음 Java Resources 의 src 에 com.javalesson.source 패키지를 만들고
그 안에 새로운 클래스 MemberList.java를 생성해줍니다.
그 다음 WebContent 의 WEB-INF 내부의 lib에 mysql 커넥터를 붙여넣기 합니다.
(전 장의 mysql 다운로드시 같이 받아둔 파일 압축풀기 하면 나오는 .jar파일)
<아래 그림처럼 나오도록!>
이제 MemberList.java를 servlet으로 만들어서 DB를 연결합니다.
package com.javalesson.source;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
//DB 연결
import java.sql.DriverManager;//접속 DB 드라이버를 설정
import java.sql.Connection;//DB 접속해서
import java.sql.Statement; //쿼리를 실행하는 클래스
import java.sql.ResultSet; //쿼리의 결과값을 받는다.
import java.sql.SQLException;
@WebServlet("/MemberList")//web.xml을 대신해서 만들어진 것
//서블릿을 맵핑해서 요청하는 주소를 설정할 수 있다.
public class MemberList extends HttpServlet {
String url = "jdbc:mysql://localhost:3306/java_lesson"//DB서버 주소
+ "?useUincode=true&characterEncoding=utf8";
String uid = "root";
String upw = "mysql";
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Connection conn = null;
String sql = "select * from member";
Statement stmt = null; //sql을 실행
ResultSet rs = null; //쿼리문의 결과를 받는다.
resp.setContentType("text/html; charset=UTF-8");
PrintWriter out = resp.getWriter();
out.print("<html>");
out.print("<body>");
try {
Class.forName("com.mysql.jdbc.Driver");//붙여넣은 mysql lib을 사용해서 접속준비
conn = DriverManager.getConnection(url,uid,upw);//접속
stmt = conn.createStatement(); //sql을 실행할 준비
rs = stmt.executeQuery(sql); //쿼리 sql을 실행하고 ResultSet 객체가 받는다.
out.print("<table border='1'>");
out.print("<tr>"
+ "<th>num</th>"
+ "<th>id</th>"
+ "<th>pwd</th>"
+ "<th>name</th>"
+ "<th>email</th>"
+ "<th>phone</th>"
+ "<th>indate</th>"
+ "<th>admin</th>"
+ "</tr>");
while(rs.next()){
out.print("<tr>");
out.print("<td>"+rs.getInt("num")+"</td>");
out.print("<td>"+rs.getString("id")+"</td>");
out.print("<td>"+rs.getString("pwd")+"</td>");
out.print("<td>"+rs.getString("name")+"</td>");
out.print("<td>"+rs.getString("email")+"</td>");
out.print("<td>"+rs.getString("phone")+"</td>");
out.print("<td>"+rs.getString("indate")+"</td>");
out.print("<td>"+rs.getString("admin")+"</td>");
out.print("</tr>");
}
out.print("</table>");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
if(conn!=null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
out.print("</html>");
out.print("</body>");
//resp.getWriter().append("<html>").append("<h1 style='color: red;'>おはようございます。</h1>").append("</html>");
}
}
위와 같이 출력되면 됩니다.
WebContent 폴더에서 새로운 jsp 문서 index.jsp 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- paga language = "java" jsp를 사용하겠다. --> <!-- html 주석 --> <!-- jsp 문서는 servlet 문서와 같다. --> <!-- % % 스크립트릿 내부는 doGet method 내부와 같다. --> <!-- %! % 전역을 표현한다. --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>index.jsp</title> </head> <body> <h2>会員登録 フォーム(insert)</h2> <h4>INSERT INTO MEMBER (id,pwd,name,phone,email,admin) VALUES ('admin','1234','관리자','111-11111','admin@gmail','1')</h4> <h4>insert 쿼리를 실행하는 MemberAdd servlet을 호출한다.</h4> <h4>성공시 MemberList servlet을 호출, 실패시 form으로 돌아온다.</h4> <!-- a href="MemberList"> 멤버리스트 출력 </a --> <form action="MemberList" method="get"> <!-- aciton은 특정 페이지를 호출(a태그와 동일한 역할) --> <!-- method 는 서블릿의 특정 페이지 doGet or doPost 중 하나를 호출함 --> <p> <label for="uName">이름</label> <!-- label은 누구의 라벨인지 for 속성으로 등록한다. 등록시 id 값을 동일하게 주면된다. --> <input type="text" id="uName" name="uNname" size="20" placeholder="이름을 입력하세요"> </p> <p> <label for="uId">ID</label> <input type="text" id="uId" name="uId" size="20" placeholder="ID를 입력하세요"> </p> <p> <label for="uPass">PW</label> <input type="password" id="uPass" name="uPass" size="20" placeholder="password를 입력하세요"> </p> <p> <label for="uEmail">E-mail</label> <input type="email" id="uEmail" name="uEmail" size="20" placeholder="E-mail을 입력하세요"> </p> <p> <label for="uPhone">Phone</label> <input type="email" id="uPhone" name="uPhone" size="20" placeholder="휴대전화번호를 입력하세요"> </p> <p> <label for="admin">관리자</label> <input type="radio" id="admin" name="admin" value="0"> <label for="normal">일반 사용자</label> <input type="radio" id="noraml" name="admin" value="1"> </p> <!-- 판넬 --> <!-- name 속성은 form 태그 안에서 유일한 값(ex)DB의 Primary Key) --> <!-- id 속성은 html 문서 안에서 유일한 값 --> <input type="submit" value="제출"> </form> </body> </html> | cs |
이번 예제에서 새로 나온 HTML태그 정리
<html> html 문서의 시작과 끝을 나타냄 </html>
<meta> 현재 html문서의 정보를 알려줌 </닫힘 없음>
<head> 머릿말이 들어가는 부분 (웹상에서 보이지 않음) </head>
<title>
웹브라우저 상단에 사이트의 제목이 들어가는 부분
즐겨찾기에 적히는 제목이기도 하다.
</title>
<body> 눈에 보이는 태그를 기술하는 부분 (웹에 보이는 모든 정보) </body>
<a href = "" target = "">
a태그(anchor)
링크 연결을 담당
href - 목적지, url
target - 보여질 위치
target의 속성에는 아래와 같은 것이 존재
_blank(새 창), _self(이동), _parent(먼저 띄워진 창),
_top(현재 띄워진 가장 최상단에 위치한 창)
name - a태그의 이름 지정(북마크 역할)
title - 링크에 대한 설명
링크속성 ":"는 가상클래스
a:link - 방문 안한 곳, 파란색
a:visit - 방문한 곳, 보라색
a:hover - 마우스를 올렸을 때
a:active - 활성화 된 링크, 빨간색
</a>
<h>
<h1>~<h6>까지 지정 가능하며
제목을 표시하기 위함.
글자 크기는 숫자에 따라 달라진다.
</h>
<form>
입력을 받기 위한 태그
name - 전송될 데이터의 이름.
form태그 안에서 유일한 값을 가져야함.
action - 입력된 데이터가 전송될 페이지를 지정.
method - 입력된 데이터가 처리될 방식
get과 post가 있음.
default값은 get임.
</form>
<label>
리더기가 읽을 부분.
웹 접근성에서 중요한 요소이며
다양한 폼 서식의 설명으로 사용됨
for - 라벨에 이름을 지정할 수 있음.
</label>
<p>
Paragraph. 문단 구분
Enter 2번과 같은 효과.
</p>
<table>
표를 만든다
옵션값은 아래와 같음
border - 테이블의 선 두께
cellpadding - 셀 안쪽 여백
cellspacing - 셀과 셀 사이의 간격
width - 테이블의 너비
summary - 요약
</table>
<tr> table row : 테이블의 행을 정의 </tr>
<th> 테이블에서 셀 제목으로 지정하여 강조되게 표시하는 태그 </th>
<td> 각 행에 포함될 셀을 만드는 태그. <th>의 개수와 같아야 한다. </td>
<input>
입력을 받는 상자
속성에는
name - 필수 입력. 이름을 지정함
value - 입력 구성요소의 값을 지정
checked - 'checked', 'radio'일 경우 체크된 상태로 지정
checked 사용시 name값은 동일해야 한다
maxlength - 타입 속성이 text, password 일 경우 입력 가능한 최대 문자수 지정
readonly - 타입 속성이 text, password 일 경우
요소의 값을 읽기전용으로 지정.
수정불가, 데이터 전송가능
disabled - 페이지가 로드 될 때 폼 속성을 비활성화 시킴.
수정불가, 데이터 전송불가.
type - 입력 구성요소의 종류를 지정
type에는 다음과 같은 종류가 있음
text, password, email, radio, checkbox, file, submit, reset, button, hidden
</input>
'JSP > 기본다지기' 카테고리의 다른 글
JSP 2일차 필기 (get방식, post방식으로 호출하기) (0) | 2016.10.19 |
---|---|
JSP 2일차 필기 (JSP 들어가기) (0) | 2016.10.19 |
JSP 1일차 필기 (서블릿의 이해) (0) | 2016.10.18 |
JSP 맛보기 3일차 (1) | 2016.09.19 |
JSP 맛보기 1일차 (0) | 2016.09.09 |