Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

[웹] JSP, 기타 본문

[웹] JSP, 기타

코드와이 2021. 4. 14. 11:20

jsp 는 servlet 보다 최초 한번 느리다

    • servlet java 파일로 변환
    • servlet class compile
    • servlet class 메모리에 적재

jsp 스크립팅 요소

  1. 선언
    <%! String name; public void init(){ name = “코드와이”;} %>
  2. 스크립트릿
    클라이언트 요청 시 매번 호출되는 영역 : service
    <% %>
  3. 표현식
    안녕 <%= name %>!!!
    세미클론 쓰면 안됌!
  4. 주석
    <%— 주석 —%>

jsp 지시자

  1. page directive

    현재 JSP 페이지를 어떻게 처리할 것인가
    <%@ page attr1=“val1” … %>
    • contentType, pageEncoding 은 utf-8로
    • errorPage : 에러가 발생할 때에 대신 처리될 페이지 설정
    • isErrorPage : 에러를 핸들링하는 페이지인지 설정(boolean)
  2. include directive

    특정 jsp 파일을 페이지에 포함
    <%@ include file=“/template.jsp”%>

  3. taglib directive

    jstl 또는 사용자에 의해서 만든 커스텀 태그
    <%@ taglib prefix=“” uri=“” %>

jsp 기본객체

  1. request
    • 사용자 입력정보를 읽어올 때
  2. response
    • 사용자 요청에 대한 응답
  3. pageContext
    • 각종 기본객체를 얻을 때 사용
  4. session
    • 하나의 웹 브라우저와 관련된 영역
    • 같은 웹브라우저 내에서 요청되는 페이지들은 같은 session을 공유
  5. application
    • 어플리케이션에서 모든 페이지가 공유할 있다.

EL

페이지에 전달된 객체를 ${} 형식으로 사용할 수 있다. Dto에 getter 함수가 있다면 ${객체.변수} 같은 형식으로 사용할 수 있다.

 

forward vs sendRedirect

 

forward 

  • path ( 내 project 안의 경로로만 이동, 프로젝트 밖으론 이동 불가)
  • 기존 url 유지
  • 비교적 빠름
  • request setattribute 데이터 전달

sendRedirect

  • url ( 외부 url 로 이동 가능 ex. www.naver.com)
  • 단순 페이지 이동
  • request 로는 데이터 전달 불가능, session, cookie 사용해야됨

 

session 동작 순서

  1. 클라이언트가 페이지를 요청
  2. 서버는 접근한 클라이언트의 request-header 필드인 cookie 확인하고 클라이언트가 해당 session-id 보냈는지 확인
  3. session-id 존재하지 않는다면, 서버는 session-id 생성해 클라이언트에게 보내준다.
  4. 서버에서 클라이언트로 돌려준 session-id 쿠키를 사용해 저장
  5. 클라이언트는 접속 , 쿠키를 사용해서 session-id 값을 서버에 저장

 

model1, model2(MVC)

model 1

  • jsp가 client의 요청에 대한 logic 처리와 response page에 대한 처리를 모두 하냐
  • view login jsp 페이지에서 처리

model 2(MVC : Model, View, Controller)

  • response view 대한 처리만 하냐
  • service, dao, dto => model
    • service : 로직을 수행하나 db 관련 로직은 dao에 전달
    • dao : db 관련 작업 수행, xml 파싱도 가능
    • dto : 데이터 객체
  • jsp => view
  • servlet => controller
    • controller : service에 일을 시키고 결과를 다음 페이지로 forward / redirect

오류 종류

200 오류 없이 성공

400 문법 상 오류

404 not found

405 method not allowed, 메소드 허용 안됨

415 지원되지 않는 형식으로 클라이언트가 요청(contentType, Content Encoding 다시 살펴볼 것)

500 서버 내부 오류

 

JDBC API를 이용하여 DB를 연동순서

  1. JDBC Driver 로딩
  2. DB Connection 생성
  3. Statement 생성
  4. Query 실행
  5. 결과처리
  6. 자원 반납

[ DB - SQL Tip]

  • rollback : 트랜잭션 작업을 되돌리는 명령어
  • in : 다중 행을 리턴하는 서브쿼리에서 =any와 동일한 것
  • executeUpdate() 메소드는 select에 적당하지 않다. executeUpdate(String query) 는 update 된 갯수를 알려준다.
  • HIREDATE => date 타입
  • substr은 1부터 시작한다. (ex. substr(ename,1,3))
  • where 절에서 column null 조건을 is null’ or ‘is not null

 

Thread & Process

thread란?

  • 명령 처리 흐름의 단위

프로세스란?

  • 프로그램의 실행 단위
  • 최소 하나의 스레드를 가진다.(Main Thread)
    • 이 스레드는 자고 있을수도 있다. = 처리할 명령이 없어서 가만히 있는 것.

실행되고 있는 프로그램 = 메모리를 사용하고 있는 프로그램

 

thread.sleep(1/1000초);

0.1 중지하려면 thread.sleep(100);

 

 

'' 카테고리의 다른 글

[웹] Vue.js  (0) 2021.05.10
[웹] Rest API  (0) 2021.05.09
[웹] MyBatis  (0) 2021.05.01
[웹] Spring(2)  (0) 2021.04.27
[웹] Spring  (0) 2021.04.27