ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP의 코드 블록 및 내장 객체
    JSP, Servlet 2021. 12. 16. 01:42

    JSP를 이용한 자바 웹 프로그래밍
        JSP를 이용해 서블릿을 좀 더 쉽게 개발

        처음이자 마지막으로 out.print 이용해서 노가다를 했었는데
        이제는 JSP에게 일을 시키면 됨 -> 확장자를 .jsp로 설정
        사용자가 .jsp 파일을 실행할 때 서블릿 코드로 바꿔줌
        url-mapping은 파일명으로 됨

        파일을 실행했을 때 브라우저가 보는 문서는
        파일이 톰캣 배포 디렉토리에 옮겨진 것

        jsp 파일에서 변수를 선언하고 싶을 때는
        <%
            int x = 3;
            int y = 4;
        %>
        처럼 코드 블록에 입력해야 함

    JSP의 코드 블록
        jsp 파일에
        y = x + 3; 을 입력하면 그대로 화면에 출력됨
        <%
            y = x + 3;
        %>
        으로 입력해야 실행됨

        y의 값은 : <%=y %> 라고 입력해야 y의 값이 출력됨

        <%
            public int sum(int a, int b) {
                return a + b;
            }
        %>
        라고 작성하게 되면 에러가 남. 메소드 안에 메소드를 쓸 수 없음. -> 구문 에러 발생
        
        <%! 이렇게 느낌표를 붙여주면 됨
            public int sum(int a, int b) {
                return a + b;
            }
        %>

        <%@ 초기 설정을 위한 Page 지시자%> , 지시 블록
        <%@ page language="java" contentType="test/html; charset=utf-8" pageEncoding="utf-8"%>

    JSP 내장객체 간략히 들여다보기
        코드 블록의 내장 객체
            <%int page = 1; %> : 오류. 중복되는 변수 이름 사용 불가능.
            ex) pageContext, session, application, config, out
        
        내장 객체 
        - request : HttpServletRequest
            getParameterNames() : 사용자가 전달한 키들을 Enumeration 객체로 반환
            getParameter(name) : 사용자가 전달한 name과 일치하는 값을 반환
            getParameterValues(name) : 사용자가 전달한 name과 일치하는 값을 배열 형식으로 반환
            getCookies() : 클라이언트에서 전달한 쿠키를 배열 형식으로 반환
            getMethod() : 현재 요청방식이 GET인지 POST인지를 문자열로 반환
            getSession() : 현재 세션 객체를 반환
            getRemoteAddr() : 클라이언트의 IP 주소를 반환
            getProtocol() : 현재 서버의 프로토콜을 문자열로 반환
            setCharacterEncoding() : 현재 JSP로 전달되는 내용을 지정한 문자셋으로 변환
            getHeaderNames() : 현재 요청이 가지는 헤더의 이름들을 반환
            getHeaders(name) : 현재 요청한 헤더에서 지정한 이름의 모든 값들을 반환
            getQueryString() : 현재 요청에 포함된 쿼리문자열을 반환

        - response : HttpServletResponse
            setContentType(type) : 컨텐트 형식을 설정
            setHeader(name, value) : 클라이언트에게 헤더로 전달할 값을 설정
            setDateHeader(name, date) : 클라이언트에게 헤더로 전달할 날짜를 설정
            sendError(status, msg) : 클라이언트에게 에러코드와 메세지를 전달
            sendRedirect(url) : 클라이언트 요청을 다른 페이지로 전달
            addCookie(cookie) : 클라이언트에게 전달할 쿠키를 설정
            encodeURL(url) : URL로 유효하지 않은 문자를 인코딩
            setStatus(sc) : 상태 코드를 설정

        - out : javax.servle.jsp.JspWriter
            getBufferSize() : output buffer의 크기를 byte로 알려줌
            getRemaining() : 남아있는 버퍼의 크기 중 사용가능한 비율을 알려줌
            clearBuffer() : 버퍼에 있는 콘텐츠를 모두 지움
            flush() : 버퍼를 비우고 output stream도 비움
            println(content) : content의 내용을 newline과 함께 출력
            print(content) : content의 내용을 출력

        - session : javax.servlet.http.HttpSession
            getID() : 각 접속에 대한 세션 고유의 id를 문자열 형태로 반환
            getCreationTime() : 세션이 생성된 시간을 밀리세컨드값으로 반환
            getLastAccessedTime() : 현재 세션으로 마지막 작업한 시간을 밀리세컨드값으로 반환
            getMaxInactiveInterval() : 세션 유지 시간을 초로 반환
            setMaxInactiveInterval(t) : 세션 유효시간을 t에 설정된 초 값으로 설정
            invaildate() : 현재 세션을 종료 세션과 관련한 값을 모두 지움
            getAttribute(attr) : 문자열 attr로 설정된 세션값을 object 형태로 반환
            setAttribute(name, attr) : 문자열 name으로 attr을 설정
            removeAttribute(name) : 세션에 설정한 속성 값을 삭제

        - application : javax.servlet.ServletContext
            setAttribute(name, value) : application 범위의 값 설정
            getAttribute(name) : application 범위의 값 얻기
            getRealPath(path) : 실제 물리 경로를 반환
            getResource(path) : path 경로의 리소스를 가리키는 URL을 반환
            getServerInfo() : 현재 요청방식이 GET인지 POST인지 문자열로 반환
            getSession() : 현재 세션 객체를 반환
            getRemoteAddr() : 클라이언트의 IP 주소를 반환
            getProtocol() : 현재 서버의 프로토콜을 문자열로 반환
            setCharacterEncoding() : 현재 JSP로 전달되는 내용을 지정한 문자셋으로 변환

    댓글