본문 바로가기
Backend/JAVA_WEB

03. JSP 내부객체 (out, request , response, session, application, pageContext, 페이지 실행과정)

by 개발개발빈이 2022. 6. 29.

○ JSP 내부객체

    - 톰캣서버에 의해 자동으로 생성된 객체
    - 개발자는 별도의 객체를 선언하지 않고 가져다 사용만 한다

    - 내부객체 종류

        ① out : 출력객체

                    → JspWriter out
        request : 사용자가 요청한 정보를 관리하는 객체 (★★★★★)

                            → HttpServletRequest request

        response : 정보를 요청한 사용자에 대한 응답을 관리하는 객체

                               → HttpServletResponse response

        session  : 요청한 사용자를 개별적으로 구분하기 위한 객체 (★★★★★)

                             → HttpSession session

        application : 모든 사용자가 공유하는 값 또는 서버에 대한 정보를 관리하는 객체

                                 → ServletContext application

        pageContext : JSP, JSTL, EL 등 현재 페이지내에서 서로 다른 문법과의 값을 교류할 수 있음

                                    → PageContext pageContext

○ JSP페이지 실행 과정

    - 톰캣 WAS에 의해서 .java와 .class가 자동으로 생성된다

    - 예) hello.jsp >>>>>>>> hello_jsp.java >>>>컴파일>>>> hello_jsp.class(실행) 

 

○ request 내부 객체의 다양한 메소드

        ① 한글 인코딩 : setCharacterEncoding()

         사용자가 입력한 정보를 가져오기 : getParameter()

         요청한 사용자의 다양한 정보 : getRemoteAddr(), getRemoteHost(), getRemotePort()

         해당프로젝트 이름 : getContextPath()

         사용자가 요청한 전체 경로의 페이지명 또는 명령어 : getRequestURL()

         사용자가 요청한 페이지명 또는 명령어 : getRequestURI()

        ⑦ 내부변수 get/set : setAttribute("변수명", 값), getAttribute("변수명")

<%	
    request.setCharacterEncoding("UTF-8");
    
    String uid=request.getParameter("uid");
    
    out.print(request.getRemoteAddr());	//사용자PC의 IP주소(★★★)
    out.print(request.getRemoteHost());	
    out.print(request.getRemotePort());	
    
    out.print(request.getContextPath());	

    out.print(request.getRequestURL());
    out.print(request.getRequestURI());

    out.print(request.getRealPath("/images"));     //비추천(deprecated)
    out.print(application.getRealPath("/images")); //추천
    
    request.setAttribute("user", "KOREA");
    Object obj = request.getAttribute("user");
    String str = (String)obj;	//다형성
    out.print(str);

%>

 

댓글