<%@ 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로 인코딩 되어있다. ( 문서 작성 형식 안내 )
JSP에서 자바 코드를 작성할 수 있는 영역
-> JSTL 라이브러리 를 이용해서 태그 형식 변경
자바 코드의 값을 html 형식으로 출력 ( 자바의 값을 화면에 )
index.html
<form action="/JSPProject1/signUp" method="post"> "/프로젝트/서비스 요청주소" 메소드=로그인(get 혹은 post)
name값과 value값을 이용 함
signUpServlet.java
@WebServlet("/signUp") - 어노테이션 작성,
상속 HttpServlet, (doPost/doGet)방식
HttpServletRequest (req)
클라이언트의 정보 + 요청 관련 정보가 담긴 객체
HttpServletResponse (resp)
서버가 클라이언트에게 응답하는 방법을 제공하는 객체
post 방식 요청 데이터 문자 인코딩 처리
req.setCharacterEncoding("UTF-8");
전달 받은 파라미터(("input태그의 name속성 값")을 얻어와 변수에 저장
파라미터는 모두 String 타입
String id = req.getParameter("inputId");
Dispatcher : 필요한 정보를 제공하는 자 == 발송자
위임 : 넘겨주다
forward : 보내다, 전달하다, 전송하다
RequestDispatcher :
Servlet -> JSP로
HttpServletRequest 객체, HttpServletResponse 객체를
발송(위임)하는 역할의 객체
-> 정확히는 요청에 대한 응답화면을 만들어
클라이언트에게 출력하는 역할을 위임하는 객체
RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/views/loginResult.jsp");
req.getRequestDispatcher("JSP 경로")
req.setAttribute(String key, Object value)
결론 : 페이지 이동 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");
-> 다운캐스팅 필요