68일차

Dogeun Lee·2023년 3월 21일
0

JSP 주요개념

package edu.kh.jsp.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/login")
// web.xml에 작성하던 servlet, servlet-mapping tag 대체 annotation

public class LoginServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

	//post 방식 요청 데이터 문자 인코딩 처리
	req.setCharacterEncoding("UTF-8");

	// parameter == inputId, inputPw 
	String id = req.getParameter("inputId");
	String pw = req.getParameter("inputPw");

	System.out.println(id);
	System.out.println(pw);

	String result = null;

	if ( id.equals("user01") && pw.equals("pass01!")) {
		result = "로그인 성공";
	}else {
		result = "로그인 실패 ";
	}

	// resq.setContentType("text/html; charset=UTF-8");

	// PrintWriter 이제 안씀

	// ** JSP로 접근하기 ** //

	// Dispactcher : 발송자, 핑료한 정보를 제공하는 자
	// RequestDispatcher == 요청을 위임하는 역항릐 객체
	// >> 정확히는 요청에 대한 응답화면을 만들어
	// 클라이언트에게 출력하는 역할

	// req.getRequestDispatcher("JSP 경로")
	// - HttpServletRequest 객체가 생성될 때
	// 내부에 요청을 위임하느 ㄴ객체를 생성하는 방법을 포함하고 있다.
	// -webapp 폴더를 기준으로 파일 경로 작성

	// forward : 보내다 전달하다 전송하다.
	// - forward : 페이지 이동이 아닌 .jsp에게 req와 resp를 전송함.
	// -> JSP 응답을 대신하는 것 뿐.
	// 결론 : 페이지이동이 아니기 때문에 주소창의 요청주소도 변하지않음

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

	//req와 resp를 loginResult.jsp로 보내준다.
	dispatcher.forward(req, resp);
}}

*JSP용 주석 : HTML요소 + JSP 전용 태그

<%@ %> : 지시자 ( 알려주거나 지시하는 속성을 기입 )
 	
chartset = UTF-8 : 현재 문서를 해석할 때 UTF-8 인코딩을 이용해서 해석 ( 해석 방법 안내 )
 	
pageEncoding = "UTF-8" : 현재 문서가 UTF-8 인코딩으로 작성되어 있음. ( 문서가 작성된 형식 안내 )
 	
<% %> = 스크립틀릿(Scriptlet) : JSP에서 자바 코드를 작성할 수 있는 영역
 	-> JSTL 라이브러리 이용해 태그 형식 변경할거임
 	-> ex) JSTL
 			  
<%= %> = 표현식(Expression) : JAVA코드의 값을 HTML 형식으로 출력
 	-> EL ( Expression Language, 표현영어)로 변경
 	-> ex) ${EL}

profile
오대수

0개의 댓글