github.com/micosara/20201005_406
micosara/20201005_406
Contribute to micosara/20201005_406 development by creating an account on GitHub.
github.com
업데이트가 동기화되지는 않는다 포크한시점의 버전만 가져오는거임
요청하는 형태가 주소줄에 대한 규정 / POST냐 GET 이냐 이거에맞춰서 서블렛의 메서드 규정해야하고
뭔가 받을것/내보낼것이 잇따면 브라우저로부터 오는것들을 was가 req객체를 이용해서 넣넣
JSP는 처리의 목적이아니고 출력이 목적이다.
JSP의 문법은 대부분 값을 어떻ㄹ게 표현할것이냐에 대한 것들이 대부분
JSP는 자바가 아니다.
JSP 도 .java로 바뀌게되면 서블렛과 같다.
브라우저에 쓰이는 모든 자원들 다 web content
서블렛을 요청했ㄴ을때 실행과정에있는 JSP는
서블렛이요청할때 외에는 열리지말아야함
webcontent영역은 was가 열어준공간임(사용자가언제든접근할수잇도록)
그럼 JSP는
jsp가 혼자 처리출력다해먹는 MVC1 pattern
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int k = Integer.parseInt(request.getParameter("k"));
int y = Integer.parseInt(request.getParameter("y"));
int sum = k + y;
/* jsp의 contentType 이 대체해주므로
response.setContentType("text/html;charset=utf-8"); */
/* jsp의 out객체가 따로있으므로 중복
PrintWriter out = response.getWriter();
*/
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>서블릿이해하기</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>");
out.println(k + " + " + y + " = " + sum);
out.println("</h1>");
out.println("</body>");
out.println("<script>");
out.println("alert('반갑습니다.');");
out.println("</script>");
out.println("</html>");
%>
</body>
</html>
web-inf 안에다가넣으면
jsp도 섭르릿이기떄문에 섭르릿에서 제이에스피 줄때도 req에 담아서 줘야함 jsp도 받을 공간이 req뿐임
자바 서블릿 페이지 의 줄임말이 JSP 임
jsp 전체 동작 과정
<% 는 무조건! WAS가 해석함
<% 는 JSP의 문법대로 사용하지않으면 에러가 남
out.print >>> =
<%, request.getparameter 줄이려고 나온게 el 임
그냥 <% 스크립틀릿은 서비스메서드 안에들어간다.
기본객체:
request
response
out : 직접 응답을 출력할떄 : response 의 getwriter 같은거임
session : 세션관리에 사용
이것들은
jsp가 .java로 바뀌는 과정에서 was가 만들어주는 객체다
근데 jsp에 서 반복문 쓰고싶고 그럼
그래서 나온게 jstl임
JSP 탬플릿만들기
프리퍼런시스
서블릿은 겟과포스트 구분함
jst는 구분된거온상태에서 포워딩 (화면만들라고)하는거기때문에 서비스메서드만 있음
클라이언트에서는 겟이나 포스트로 나눠야할이유가 명확하지만 서버단에서는 겟으로오건 포스트로 오건 겟파라미터인것 같음. 근데 왜 나눠놓음? 플로어를 갈라야하니까.. (진행을 갈라야하니까)
jsp는 겟과포스트구분안하고 서블릿이 구분하지만
post로 오는파라미터 데이터는 리퀘스트바디에 저장되어오기댸문에 utf에 영향을 받지않기때문에
셋인코딩을 utf-8로 변환시켜서 줘야하는데 그래서 매번 해주기 귀찮으니까
그래서 인코딩필터를 건거임
request.setCharactterEn어쩌구