JSP 221123

John·2022년 11월 23일
0

java

목록 보기
16/20

웹 프로그래밍

http://www.yahoo.co.jp:80/jp/index
|        |				|		|
프로토콜   |			포트		information path
		컴퓨터주소(DNS를 통한 IP 주소로 변경)

프로토콜은 규칙
도메인은 IP
포트는 프로그램 - 서버를 열어야하니 여기서는 톰캣 제우스 등

자바 서버 페이지의 장이다

JSP

아키텍쳐

.jsp
|
| java 파일로 변환
|
java
|
| 컴파일
|
class
예수도 놀라 부처와 부둥켜안는 감동 실화가 jsp 에서 일어난다

기존 java 에서 class 로의 컴파일은
cmd 에서 직접 때리박거나 실행까지 뺑뺑이 돌리는 것을

javac .......

개발자가 직접 치거나
이클립스가 해줬다

1997년, 이미 웹의 대중보급에 의해 보다 나은 서비스에 대한 요구가 증가해왔고
그런 시대의 시대의 부름에 따라 동적 웹이 등장하게된다

현재시간을 나타내는 서비스

<body>
	10:00 00
</body>

보이는것은 간단한 내용이지만, 매 초마다 다른 내용의 문서를 작성해야한다면
매 초마다 새로운 본문 작성과 출령 배포 등, 매우 빠른 공정이 이뤄져야 할것이다.

그러고나서야 클라이언트의 요구에 따라 다음 초를 표시한 페이지를 응답할수 있게된다.

매 초마다 작성할순 없으니
미리 작성해둔 프로그램을 서버에서 돌아가게하는게 결정적인 차이라고 할수 있겠다

서버에 있는 문서를 골라가져가기만 하던 정걱웹과는달리
동적웹은 기본적으로 while 문으로 반복해서 작동하고있고
socket 을 이용해 실시간으로 클라이언트의 요구에 응답하게된다.

.jsp
|
| java 파일로 변환
|
java

그때의 주고받는 요청과 응답을 servlet 을 통해 주고받고 이를 java 로 변환해 주는것이
앞으로 이용하게 될 톰캣이다.

servlet

가장 핵심기능인 서블릿에 대해 다루겠다.

1대1 채팅 프로그램과 유사한 구조라고 할 수 있다.

그중 요우응답을 주고받는 방식의 종류가 있으니 조금씩 짚고가자

get-post 방식 -> socket 을 통해 메세지 형식으로 클라이언트-서버 간의 교환이 이루어진다
이때 두 가지로 나뉘는데,

  • get 키 값의 형태로 html 문서상의 header 에 요구를 받아 해당 주소의 페이지를 보여준다.

    https://en.dict.naver.com/#/search?query=**panty**
    사전에 검색한 키워드가 무었인지 주소창을 통해 확인할 수 있다.

이런방식으로는 중요한 정보가 노출 될 우려가 있으니
html 속 body 에 내용을 넣어 주고받는 post 방식이 있다.

이를 직접 서블릿 파일을 통해 보자면

	protected void doGet(
    	HttpServletRequest request, 
    	HttpServletResponse response
    ) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doGet() 호출");
		response.setContentType("text/html; charset=euc-kr");
		PrintWriter out = response.getWriter();
		out.print("<html>");
		out.print("<head>");
		out.print("</head>");
		out.print("<body>");
		out.print(
        	"<h1> 
            	this is get style. so doGet was called ㅁㄴㅇ
			</h1>"
		);
		out.print("</body>");
		out.print("</html>");
		out.close();
		response.getWriter().append(
        	"i am programer").append(request.getContextPath()
		);
	}

get 을 실행시키는 doGet이 호출되어있다

	protected void doPost(
    	HttpServletRequest request, 
        HttpServletResponse response
	) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("doPost() 호출");
		response.setContentType("text/html; charset=euc-kr");
		PrintWriter out = response.getWriter();
		out.print("<html>");
		out.print("<head>");
		out.print("</head>");
		out.print("<body>");
		out.print(
        	"<h1> 
            	this is get style. so doPost was called ㅁㄴㅇ
			</h1>"
		);
		out.print("</body>");
		out.print("</html>");
		out.close();
	}
}

위와 같이 이쪽은 post 가 실행된다.




context

프로토콜 - 도메인 - 포트 - /프로젝트이름

	protected void doGet(
    	HttpServletRequest request, HttpServletResponse response
	) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

/project-name 의 형식으로 표시되는 부분이 context path 이다

톰캣 은 내부에서 각 프로젝트를 개별 프로세스단위로 메모리에 올린다(os 를 아니기 때문에정확히는 프로세스는 아니다 이해를위한표현)
또, 이를 태스크로 활용한다

하나의 프로그램,특수한목적을가진 메모리영역 이라고도 하겠다.


기타

※톰캣사용중 xml 을 서버가 켜진채로 건드리지말자

DBA - data base administrator - 기업이 성장아면 구인하게된다
그 다음은 채팅

form 태그
클라이언트가 정보를 보내는기능

profile
hello there

0개의 댓글