JSP와 서블릿은? Java 서버 측에서 사용하는 기술로, JSP는 HTML 태그 안에 Java 코드를 작성하여 서버에서 쉽게 Java 코드를 실행하는 방법이며, 서블릿은 Control 역할을 수행하여 요청 정보를 관리하고 응답을 관리합니다.
forward는? 서블릿이나 JSP에서 다른 서블릿이나 JSP로 제어를 이동시키는 것이고, redirect는? 다른 URL로 이동하는 것이다.
서블릿은 단독으로 사용하는 것 보다 HTML이나 JSP 페이지와 같이 사용 多(JSP가 View)
서블릿만 사용하면, html 태그들 한 줄 한 줄 다 println 하는거야??? no way… 😅JSP 반드시 필요하다
서블릿은 Control!!
📌주요 포인트
response.setContentType(유형);
request.setCharacterEncoding(인코딩 이름);
response.setCharacterEncoding(인코딩 이름);
PrintWriter out = response.getWriter();
Java Server Pages로 HTML 태그 안에 Java 코드를 작성 → 서버에서 쉽게 Java코드를 실행하는 방법
📌주요 포인트
선언문(디클러레이션=Declaration)
<%!
전변, 메소드 선언 자리, 인스턴스화 못 함
플랫폼 독립적이어서 서버마다 자바 클래스 이름의 명명규칙 다름
공통코드, DB 연동하는 코드, 재사용성 고려한 메소드라면 XXX.java
%>
스크립트릿(=Scriptlet)
<%
자바코드 입력하는 공간
지역변수 : service()코드가 생성되니까 메소드 안에서 선언한 변수이니까
%>
표현식(익스프레션=Expression)
메소드 영역에서 사용하는 출력구문
페이지 지시문
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
java코드 실행 부분
<%= java.util.Calendar.getInstance().getTime() %>
forward를 사용하여 결과를 JSP에 표시, 서블릿에서 화면의 표시 할 필요 x
doGet or doPost로 값을 얻어 forward 메소드로 포워드하기
변수 = "HttpServletRequest".getAttribute(이름);
RequestDispatcher dispatcher = app.getRequestDispatcher("/ hello.jsp");
try {
dispatcher.forward(request, response);
} catch (ServletException e) {
out.println(e);
}
forward 보다 더 쉽게 사용 가능, 아래와 같이 메소드를 호출 how? 세션!!
"HttpServletRequest".sendRedirect(리다이렉트 주소);
HttpSession session = request.getSession();
session.setAttribute("input", param);
session.setAttribute("result", result);
<% = session.getAttribute ( "result") %>
<% = session.getAttribute ( "input") %>
선언문(디클러레이션=Declaration)
<%!
전변, 메소드 선언 자리, 인스턴스화 못 함
플랫폼 독립적이어서 서버마다 자바 클래스 이름의 명명규칙 다름
공통코드, DB 연동하는 코드, 재사용성 고려한 메소드라면 XXX.java
%>
스크립트릿(=Scriptlet)
<%
자바코드 입력하는 공간
지역변수 : service()코드가 생성되니까 메소드 안에서 선언한 변수이니까
%>
표현식(익스프레션=Expression)
메소드 영역에서 사용하는 출력구문
🤔how?? 주요 포인트
클라이언트의 요청으로 인한 서버의 진행 흐름에 대한 전체적인 이해 필요
에러코드
200 : 오케이
302 : 한 번 요청한 url get 방식으로 또 요청했을 때 - 서버까지 전달 x
404 에러 : url 오타, 경로 오류
405 에러 : Restful API 메소드 이름 오타
500 : Exception, 런타임에러, 반드시 트러블 슈팅 해야함.