카테고리 없음

JSP

logloglog 2021. 2. 4. 17:17

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 component

브라우저에 쓰이는 모든 자원들 다 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뿐임

 

attribute는 사용자가 준게아니고 서버단에서 필요해서 만든값을 말한다.

자바 서블릿 페이지 의 줄임말이 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어쩌구