티스토리 뷰
반응형
(2) 라이브러리 등록과 회원목록 출력
1) 라이브러리 등록
서블릿으로 mysql에 있는 데이터를 쉽게 가져올 수 있게 하는 라이브러리를 추가해야 한다. 우리는 gradle을 사용하기 때문에 손쉽게 라이브러리를 추가할 수 있다. build.gradle 파일에 dependencies 를 추가한다. 우리가 추가할 라이브러리는 mysql-jtbc driver 라이브러리와 servlet-api 라이브러리이다. 다음과 같은 코드를 build.gradle 파일에 추가한다.
1 2 3 4 5 6 7 | dependencies { // servlet api providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1' //mysql jdbc driver 라이브러리 compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.46' } | cs |
build.gradle 파일을 수정한 뒤에는 반드시 gradle eclipse 명령으로 파일을 다시 깔아줘야한다.
2) 패키지, 클래스 생성
src/main/java 아래 servlet 패키지를 만들고 MemberList 클래스를 추가한다. 대부분의 개발자들이 패키지를 만드는 장소이므로 이곳에 만드는 습관을 들이는 것이 좋다.
3) MemberList 작성
MemberList의 코드는 아래와 같다. 코드에 대한 설명은 주석을 참고할 것.
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 56 57 58 59 60 61 62 63 64 65 66 67 | package servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; // @는 annotation을 뜻한다, annotation은 서버에 알려주는 역할을 한다. @WebServlet("/member/list") // "/member/list" 라는 요청이 URL로 오면 이 클래스를 실행한다. public class MemberList extends HttpServlet { // HttpServlet 클래스를 상속받으면 해당 클래스가 servlet으로 동작하게 한다 // 상속받은 클래스에서 doGet 메서드를 오버라이드 해서 get요청을 받아서 처리한다. @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); // characterset 을 utf8로 지정 PrintWriter out = response.getWriter(); // 화면에 직접 html 코드를 출력하는 객체이다 out.println("<!DOCTYPE html>"); // 여기서 작성된 태그는 버퍼에 저장되었다가 out.println("<html>"); // 한번에 전송된다. out.println("<head>"); out.println("<meta charset='UTF-8'>"); out.println("<title>멤버 목록</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>멤버 목록</h1>"); out.println("<p><a href='add.html'>새회원</a></p>"); out.println("<table border='1'>"); out.println("<tr>"); out.println(" <th>아이디</th><th>이메일</th>"); out.println("</tr>"); try { Class.forName("com.mysql.jdbc.Driver"); // mysql-jdbc driver를 로딩한다 try ( // forName 안에 물리적 주소를 넣으면 클래스를 반환 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", // mysqldb에 접속하는 "test", "1111"); // Connection 객체를 만듭니다 PreparedStatement stmt = con.prepareStatement("select mid, email from member"); // sql 쿼리문을 // 저장하는 객체 ResultSet rs = stmt.executeQuery();) { // 쿼리문을 전송해서 반환되는 값을 // 저장하는 resultset while (rs.next()) { // resultset에 값이 있으면 반복문을 계속 수행한다 out.println("<tr>"); out.printf(" <td><a href='view?id=%s'>%s</a></td><td>%s</td>\n", rs.getString("mid"), rs.getString("mid"), rs.getString("email")); out.println("</tr>"); } } } catch (Exception e) { out.println("<p>목록 가져오기 실패!</p>"); //에러처리 e.printStackTrace(out); } out.println("</table>"); out.println("</body>"); out.println("</html>"); } } | cs |
위 코드가 잘 수행 된다면 아래 그림과 같은 결과를 얻게 된다. 아마 테이블 안에 아무 자료도 없기 때문에 아무런 목록이 뜨지 않을 텐데 insert문으로 회원을 몇 명 추가하면 제대로 된 결과를 볼 수 있다.
반응형
'framework > Spring' 카테고리의 다른 글
JSP 도입과 MVC 패턴 (0) | 2018.07.31 |
---|---|
JDBC+DAO 활용한 회원 리스트 만들기 (0) | 2018.07.30 |
서블릿(servlet)을 이용한 회원관리 페이지 만들기 (1) 회원 테이블 생성 (0) | 2018.07.26 |
Tomcat 서버 연동 해서 index.html 페이지 띄우기 (0) | 2018.07.26 |
gradle로 기본 자바 프로젝트 만들기 (0) | 2018.07.25 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- REST API
- 마르코프
- 크롬
- 경고
- 문장 생성기
- html
- Markov
- 디자인패턴
- java
- 자바스크립트 개론
- CONVENTIONS
- was
- 동적계획법
- 로그
- 야근
- 클린코드
- markov chain
- GROUP BY
- 전략패턴
- restful api
- RESTful
- 자바스크립트개론
- 몰라서망신
- 유지보수
- Spring in Action
- 마르코프 연쇄
- Warning
- 코딩의 기술
- Count
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함