JSP

김덕근·2023년 3월 20일
0

JSP

목록 보기
1/6

JSP 파일에 작성

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>


<% %>, <%= %>, <%@ %>, %{EL}, <c:if>JSTL</c:if>

<%@ %> : 지시자( 알려주거나 지시하는 속성 기입 )

chartset=UTF-8 : 현재 문서를 해석할 때, UTF-8 인코딩을 이용해서 해석 ( 해석법안내 )
pageEncoding="UTF-8" : 현재 문서가 utf-8로 인코딩 되어있다. ( 문서 작성 형식 안내 )

<% %> : 스크립틀릿(Scriptlet)

JSP에서 자바 코드를 작성할 수 있는 영역
-> JSTL 라이브러리 를 이용해서 태그 형식 변경

<%= %> : 표현식(Expression)

자바 코드의 값을 html 형식으로 출력 ( 자바의 값을 화면에 )

EL(Expression Language) : 표현 언어로 변경


index.html

<form action="/JSPProject1/signUp" method="post">
			"/프로젝트/서비스 요청주소" 메소드=로그인(get 혹은 post)

name값과 value값을 이용 함


signUpServlet.java

@WebServlet("/signUp") - 어노테이션 작성,
상속 HttpServlet, (doPost/doGet)방식

HttpServletRequest (req)

클라이언트의 정보 + 요청 관련 정보가 담긴 객체

HttpServletResponse (resp)

서버가 클라이언트에게 응답하는 방법을 제공하는 객체

  1. post 방식 요청 데이터 문자 인코딩 처리

    req.setCharacterEncoding("UTF-8");

  2. 전달 받은 파라미터(("input태그의 name속성 값")을 얻어와 변수에 저장
    파라미터는 모두 String 타입

    String id = req.getParameter("inputId");

JSP로 응답하기

Dispatcher : 필요한 정보를 제공하는 자 == 발송자
위임 : 넘겨주다

forward : 보내다, 전달하다, 전송하다

  • 응답 화면을 만드는 Servlet의 일을
    좀더 효율적으로 처리할 수 있는 JSP에게 넘겨줄 예정

RequestDispatcher :
Servlet -> JSP로
HttpServletRequest 객체, HttpServletResponse 객체를
발송(위임)하는 역할의 객체
-> 정확히는 요청에 대한 응답화면을 만들어
클라이언트에게 출력하는 역할을 위임하는 객체

RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/views/loginResult.jsp");

req.getRequestDispatcher("JSP 경로")

  • HttpServletRequest 객체가 생성될 때
    내부에 자동으로 요청을 위임하는 객체(RequestDispatcher)를 생성하는 방법을 포함하고 있음.

JSP 경로 작성 규칙

  • webapp 폴더 기준으로 JSP 파일까지의 모든 경로 작성
  • JSP 에게 전달될 예정인 req 객체에 result 변수 값 담아서 같이 전달

req.setAttribute(String key, Object value)

  • value는 모든 객체(타입 상관 없음)
    Attribute : 속성 == 데이터(값)
    req.setAttribute("re", result);
    Object 업캐스팅 되어있는 상태
  • forward는 페이지 이동이 아닌
    Servlet의 역할 중 응답화면출력 역할을 분업한 JSP에게
    req, resp를 전달만 하는 것.
    -> JSP 응답을 대신 할 뿐이다.

결론 : 페이지 이동 X -> 주소창의 요청 주소도 변하지 않는다.

dispatcher.forward(req, resp);

req - 파라미터
resp - 응답용 스트림


signUpResult.jsp(파일)

여기는 JSP -> Servlet으로 부터 전송받은 req, resp가 있음
-> req, resp를 사용할 수 있다.
-> 대신 이름이 request, response로 바뀜

request.getAttribute("key")

-> value(Object 타입)

String userId = request.getParameter("userId");

String res = (String)request.getAttribute("r");

-> 다운캐스팅 필요

profile
안녕하세요!

0개의 댓글