-
day45 - JSP(jdbc 연결, JSP의 4가지 영역, EL Object)KIC/JSP 2021. 8. 19. 00:29반응형
[Book 프로젝트]
[Book.java]
package book; public class Book { private String writer; private String title; private String content; public Book(String writer, String title, String content) { super(); this.writer = writer; this.title = title; this.content = content; } public String getWriter() { return writer; } public void setWriter(String writer) { this.writer = writer; } @Override public String toString() { return "book [writer=" + writer + ", title=" + title + ", content=" + content + "]"; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
[BookService.java]
package book; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import util.DBConnection; public class BookService { public int bookInsert(HttpServletRequest request) { Connection con = DBConnection.getConnection(); PreparedStatement pstmt = null; String sql = "insert into book (writer, title, content) values(?, ?, ?)"; try{ pstmt = con.prepareStatement(sql); pstmt.setString(1, request.getParameter("writer")); pstmt.setString(2, request.getParameter("title")); pstmt.setString(3, request.getParameter("content")); return pstmt.executeUpdate(); }catch(SQLException e) { e.printStackTrace(); }finally { DBConnection.close(con, pstmt, null); } return 0; } public List<Book> bookList() { Connection con = DBConnection.getConnection(); System.out.println("bookList"); PreparedStatement pstmt = null; ResultSet rs = null; String sql = "select * from book"; List<Book> li = new ArrayList<Book>(); try{ pstmt = con.prepareStatement(sql); rs=pstmt.executeQuery(); while(rs.next()) { Book b = new Book(rs.getString("writer"),rs.getString("title"),rs.getString("content")); System.out.println(b); li.add(b); } }catch(SQLException e) { e.printStackTrace(); }finally { DBConnection.close(con, pstmt, null); } System.out.println(li); return li; } }
[DBConnection.java]
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBConnection { public static Connection getConnection() { Connection con = null; try { Class.forName("oracle.jdbc.OracleDriver"); String url="jdbc:oracle:thin:@localhost:1521:xe"; String userId = "kic"; String passwd = "passwd"; con = DriverManager.getConnection(url, userId, passwd); }catch(Exception e) { e.printStackTrace(); } return con; } public static void close(Connection con, Statement stmt, ResultSet rs) { try { if(rs != null)rs.close(); if(stmt !=null) stmt.close(); if(con !=null) { con.commit(); con.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
[book.jsp]
<%@page import="book.Book"%> <%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@page import="book.BookService"%> <%@page import="java.sql.ResultSetMetaData"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.PreparedStatement"%> <%@page import="java.sql.Connection"%> <%@page import="java.sql.DriverManager"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- book.BookService 1) 입력 받아서 저장 2) 저장된 내용 리스트 보기 3) util.DBConnection : database 연결을 위한 class 4) DB 생성 create table book( writer varchar(20), title varchar(100), content varchar(3000)); --> <% request.setCharacterEncoding("UTF-8"); List<Book> li = new ArrayList<Book>(); if(request.getParameter("writer")!=null){ BookService bs = new BookService(); bs.bookInsert(request); li = bs.bookList(); } %> <!DOCTYPE html> <html> <head> <meta charset = "UTF-8"> <title>Insert title here</title> </head> <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> <body> <form method="post"> <table> <tr><td>방문자</td> <td><input type="text" name="writer"></td></tr> <tr><td>제목</td> <td><input type="text" name="title"></td></tr> <tr><td>내용</td> <td><textarea name="content" rows="5"></textarea></td></tr> <tr><td colspan="2" align="center"> <input type="submit" value="방명록등록"></td></tr> </table> </form> <table class = "w3-table-all"> <tr><th>방문자 </th><th>제목</th><th>내용</th></tr> <% for(Book b : li){ %> <tr><td><%=b.getWriter() %></td> <td><%=b.getTitle()%></td> <td><%=b.getContent()%></td></tr> <% } %> </table> </body> </html>
[JSP의 4가지 영역]
<%-- /WebContent/application2.jsp jsp의 4가지의 영역 1.page 영역 : 하나하나의 jsp 페이지. pageContext 객체. 2.request 영역: 한번의 요청 후 응답까지 호출되는 모든 jsp 페이지. request 객체를 공유함. 3.session 영역 : 같은 브라우저에서 호출되는 모든 jsp 페이지. session 객체를 공유함. 4.application 영역 : 웹어플리케이션에 속한 모든 jsp 페이지. application 객체를 공유함. 웹어플리케이션 : 영역담당 객체들은 속성 관련 메서드 멤버로 가진다 속성등록 : setAttribute(키(key), 객체(value)) setAttribute(String,Object) 속성조회 : getAttribute(String) 속성제거 : removeAttribute(String) --%>
- JSP에는 저장할 수 있는 영역이 4가지가 있다.
- 4가지 영역은 특정한 값을 키와 객체(value)로 가지고 있다가 클라이언트에 효율적으로 보내는 방법들이다.
1.page 영역 : 하나하나의 jsp 페이지. pageContext 객체. JSP 한 페이지에 유효한 영역
2.request 영역: 한번의 요청 후 응답까지 호출되는 모든 jsp 페이지. request 객체를 공유함.
request 영역은 클라이언트에서 url을 만들어 url과 함께 데이터를 보낼 때 처리가 된다.
request 영역은 서버에서 url이 발동해 실행과 함께 사이클이 돌면 refresh가 된다.
3.session 영역 : 같은 브라우저에서 호출되는 모든 jsp 페이지. session 객체를 공유함.
setAttribute, getAttribute가 여기에 해당
로그인 후 로그아웃 될때 까지 세션이 유지가 된다.
4.application 영역 : 웹어플리케이션에 속한 모든 jsp 페이지. application 객체를 공유함application 영역은 어떤 유저든 상관 없이 데이터를 확인 가능, application 영역은 계속 유지가 된다.
[EL Object]
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setAttribute("name", "최범균"); %> <!DOCTYPE html> <html> <head> <meta charset = "UTF-8"> <title>Insert title here</title> </head> <body> 요청 URI: ${pageContext.request.requestURI}<br> request의 name 속성: ${requestScope.name}<br> code 파라미터: ${param.code} </body> </html>
300x250'KIC > JSP' 카테고리의 다른 글
day46_2 - JSP(AJAX) (0) 2021.08.20 day46_1 - JSP(jstl, if 태그, forEach) (0) 2021.08.19 day44 - JSP(쿠키, jdbc 연결) (0) 2021.08.17 day43 - JSP(GET 방식, for문 예제, request 내장 객체, response 내장 객체) (0) 2021.08.13 day42 - JSP(model1/model2, 표현식, include 페이지, form) (0) 2021.08.13