Java Server Pages
의 약자HTML code
+ JAVA code
를 넣어 동적 웹페이지를 생성하는 웹어플리케이션 도구이다.스크립트 언어
인 JSP를 사용한다.JSP 실행
->
Java Servlet 코드로 변환 ( .java 파일 생성 )
->
Servlet 코드 파일 컴파일 ( .class 파일 생성 )
->
실행을 통해 HTML 파일 생성하여 JSP 컨테이너에게 전달
->
JSP 는 HTTP 프로토콜을 통해 HTML 페이지를 클라이언트에게 전달
클라이언트는 request ( 요청하는 쪽 )
서버는 response ( 요청 받고 응답하는 쪽 )
클라이언트가 요청해줘야지 응답이 가능하므로단방향
이다.
( 서버는 클라이언트 요청 없이 응답해주지 않는다. )
web application
: 웹에서 실행되는 응용프로그램. 인터넷을 통한 여러 서비스를 총칭하며 사용자가 필요한 요청을 하고 서버에서는 요청을 수행하고 응답함.
보통 웹 브라우저, 웹 서버, 웹 어플리케이션 서버(was), DB 로 구성되어있다.
컴파일을 하지 않고 인터프리터로 즉시 실행될 수 있는 언어를 말한다.
( 따로 컴파일 없이 f5 누르면 수정한 것이 바로 적용이 됨 )
(ex) JS, JSP, ASP, PHP, etc...
JSP를 JAVA 코드로 자동 변환해주는 것으로 WAS ( Web Application Server )
이다.
2-Tier 구조
: 클라이언트 - TOMCAT ( was ) - DB3-Tier 구조
: 클라이언트 - APACHE ( web server ) - TOMCAT ( was ) - DB<!-- 서버가 켜지면 가장 먼저 찾게 되는 페이지들의 모음 --> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list>
이 중 어떤 파일도 만들지 않을 시 파일을 찾아볼 수 없다는 404 Error가 뜬다.
webapp 폴더에 우클릭 후 new - other 클릭
Web 폴더의 JSP 파일 클릭 후 next 눌러 이름 적어준 뒤
New JSP File ( html 5 ) 누르고 Finish 클릭
http://localhost:8080/01_Start/
IP Address
: localhost. 내 컴퓨터 (ex) 아파트 주소port
: 8080. 포트 번호는 절대 중복되면 안됨 (ex) 아파트 호수service name
: 01_Startport
와 service name
은 변경이 가능하지만, ip address
는 변경이 불가능하다.
<Connector connectionTimeout="20000" maxParameterCount="1000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
Servers
폴더 -> server.xml
파일에서 port="8080"
을 port="80"
으로 변경이 가능하다.
<Context docBase="01_Start" path="/01_Start" reloadable="true" ... >
에서 server name path ="/"
로 바로 변경이 가능하고,
Tomcat v9.0 Server at localhost 을 더블클릭해서
Module로 들어가 Edit 에서 /
로 바꾼 뒤 다시 run as 해주면 /
로 저장이 된다.
JSP 는 HTML code
+ JAVA code
로 사용이 가능한데
이를 가능케 하는 것이 Scriptlet
이다.
<% %>
: JAVA LOGIC 을 표현할 수 있는 영역 <%@ %>
: Page 속성을 정의하는 영역 <%! %>
: 변수나 메서드 선언을 하는 영역 <%= %>
: 변수나 메서드 반환 결과를 출력하는 영역<!-- header --> <%@ include file = "header.jsp" %> <h3>여기는 메인 영역 입니다.</h3> <ul> <% for(int i = 1; i <= 10; i++) { %> <li><%=i %></li> <% } %> </ul> <!-- footer --> <%@ include file = "footer.jsp" %>
<%@ include file = "포함시킬 페이지(파일)" %>
를 사용하여 header
, footer
파일을 넣으면 해당 파일의 내용을 위 아래로 표시해준다
Server 와 Client 간에는 요청과 응답이 오간다.
그렇기 때문에 request 객체
와 response 객체
는 웹서비스에 있어서 핵심 객체이다.
JSP 는 두 객체 처럼 자주 사용하는 객체는 따로 선언하지 않도록 내장객체로 만들었다.
클라이언트로 부터 온 요청에 관한 모든 정보를 다루고 있다.
이때 request
에서 받아올 수 있는 정보는 form 태그
를 통해 보낸 값 parameter
이다.
form태그의
action="정보 받을 페이지"
를 통해서 입력한 정보를 해당 페이지에parameter
로 보낼 수 있다.
정보를 서버에 보내면 request.getParameter(name 속성의 값)
을 통해 Parameter
을 얻을 수 있다.
getParameterValues(name속성값)
getParameter(name속성값)
<tr> <th>취미</th> <td> <input type="checkbox" name="hobby" value="독서" /> 독서 <input type="checkbox" name="hobby" value="게임" /> 게임 <input type="checkbox" name="hobby" value="축구" /> 축구 <input type="checkbox" name="hobby" value="영화" /> 영화 </td> </tr>
와 같이 checkbox의 value 값을 가져오고 싶으면
로 가져올 수 있다.
그밖에 도메인, 포트번호, 요청방식, IP주소와 같은 정보들도 받아 활용할 수 있다.
System.out.println("도메인 : " + request.getServerName()); System.out.println("포트번호 : " + request.getServerPort()); System.out.println("요청방식 : " + request.getMethod()); System.out.println("IP주소 : " + request.getRemoteAddr());
scriptlet 으로 출력되는 정보를 java script 에서도 활용이 가능 하다
다만 "<%=request.getParameter("name")%>";
와 같이 ""
로 감싸줘야 한다.
그렇지 않으면 var userName = 홍길동;
으로 홍길동이란 변수
가 대입된단 의미가 된다.
( String id = request.getParameter("id");
는 같은 JAVA 라서 문자열로 인식해 바로 변수에 집어넣는 것이 가능하다. )
Response 객체는 요청에 대해 응답 페이지를 전달해 주는 객체이다.
페이지를 만드는 (write) 객체이다 보니 out 객체처럼 출력이 가능하다.
또한 특정 페이지로 이동하는 것도 가능하다.
페이지출력은 총 3가지 방법이 있다.
<%=내용%>
: out 객체를 사용 ( Scriptlet 은 out 객체와 동급 )out.Print(내용)
: out 객체response.getWriter().write(내용)
: response 객체 사용.출력 자체는 response가 빠르다. 이유는 나머지 2개는 response의 자식이기 때문이다.
출력 명령을 줄이기 위해서 out 객체를 만들었고 Scriptlet은 out 객체를 사용하기 때문에 둘은 동급이다.
response.sendRedirect("end.jsp")
와 같이 원하는 페이지로 이동 시킬 수 있다.
Redirect 는 특정 조건에 의해 보내게 될 페이지가 달라질 경우에 주로 활용한다.
( ex ) 로그인 정보가 맞으면 다음 페이지로 이동, 틀리면 다시 입력하라고 로그인 페이지 다시 되돌아감.
out 객체는 서버에서 페이지로 output Stream 하는 기능을 한다. 하지만 실질적으로는 페이지에 문자열을 출력하는 정도로만 사용한다고 보자.
cmd 실행에서 포트 확인 및 끄는 방법 명령어
tomcat download 9 버전으로 windows 64 bit 다운 및 압축
Preference 설정으로 들어가
1) general - web brower - Use external web browser 설정
( internal web brower 은 이클립스 자체 브라우저가 뜸 )
2) web - CSS files / HTML files / JSP files를 UTF-8 로 변경
Servers 란의 링크를 클릭
다운받은 Aparche 의 Tomcat v9.0 Server 로 설정
tomcat installation directiory에 다운로드한 경로 C:\apache-tomcat-9.0.78 넣기
JRE 은 jdk-11.0 선택하고 쭉 Next 하면 Tomcat으로 서버를 만들 수 있다.