Java/Servlet&JSP

Servlet/JSP #2

DGeon 2023. 3. 7. 09:14
  • HTML 템플릿 수정
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html lang="ko">
    <head>
    	<meta charset="UTF-8">
    	<title>2023. 3. 7.오전 10:45:16</title>
    	<meta name='viewport' content='width=device-width, initial-scale=1'>
    </head>
    <body>
    	
    </body>
    </html>
    
  • directive 지시자(선언)(2_JSP Dynamic web project-index.jsp)
  • <%@page import="java.util.*"%> <%@include(하나의 페이지) %> <%@tablib (JSTL)%>
  • scriptlet(2_JSP Dynamic web project-index.jsp, member.jsp)
    • 메서드 블럭(지역)<% %>
    • 메서드 선언(전역) <%! %>
    • 선언된 변수도 지역
    • model1 : only JSP
    • <%@page import="java.sql.SQLException"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@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 lang="ko"> <head> <meta charset="UTF-8"> <title>2023. 3. 7.오전 11:09:08</title> <meta name='viewport' content='width=device-width, initial-scale=1'> </head> <body> <table border="1"> <tr> <th>아이디</th> <th>비밀번호</th> <th>이름</th> <th>가입일시</th> </tr> <% Connection conn = null; try { // Driver에 JDBC import 부분 Class.forName("org.mariadb.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mariadb://np.ovmkas.co.kr:3306/sample_db", "SAMPLE", "1234"); } catch (Exception e) { e.printStackTrace(); } //처리할 SQL구문 String sql = "select * from tbl_member"; try { // 문장생성 Statement stmt = conn.createStatement(); //결과집합 반환 ResultSet rs = stmt.executeQuery(sql); //결과집합 >> 자바객체 while(rs.next()){ %> <tr> <td><%out.print(rs.getString("id")); %></td> <td><%out.print(rs.getString("pw")); %></td> <td><%out.print(rs.getString("name")); %></td> <td><%out.print(rs.getString("regdate")); %></td> </tr> <% } } catch (SQLException e) { e.printStackTrace(); } %> </table> </body> </html>
    • JSP는 자동적으로 ServletException을 가지고 있기때문에 connetion에대한 try ~ catch문이 없어도 가능하다
  • expression(출력print)
    • <%= %> print
      • <% out.print(rs.getString("regdate"));%> 출력을 가능하게 해준다 아래 처럼
      • <%= rs.getString("id")%></td>
      • <%= %>혼자 사용 불가능하다/빈문자열을 쓰면 사용 가능
  • 내장객체
    • request
      • 2_JSP Dynamic web project-layer.jsp
    • response
      • 2_JSP Dynamic web project-resp.jsp
    • page
      • private(jsp 해당 페이지 에서만)
    • pageContext
    • session(cookie)
      • 로그인
      • jsp 는 자동으로 생성된다
      • jsp문서 상단에 page 에 session=’true’를 써준다
      • 세션 유지 시간은 30분(session.getMaxInactiveInterval() 1800이 나온다)
    • application
      • public(어디서든지 쓸 수 있음)
    • config
    • out
      • getWriter();
    • exception
  • 영역객체
    • page
    • request
    • session
    • application
  • Cookie
    • 클라이언트와 서버사이에 소통하기 위한 작은 키
  • Http의 특징
    • 상태없음(무상태성)
    • 비연결성
  • TCP / UDP(전송계층)
    • TCP : 연결(전화,채팅) 1바이트씩 전송
    • UDP : 비연결(택배,게임)
  • 쿠키와 세션