2020-06-24 수요일 수업_jsp 사용법

JooKit 주킷 2020. 6. 25. 00:34
목차 접기
728x90
반응형

1. new - other - dynamic 검색 : Dynamic Web Project 선택 -> next -> project name : blog -> 

target runtime(runtime: 실행환경) : tomcat을 등록해주어야 한다. -> new runtime click! -> Apache Tomcat v9.0 

-> next -> Tomcat installation directory : Browse 클릭해서 설치한 톰캣의 폴더를 선택해준다! -> 

하단의 JRE : 를 jdk로 변경 ! -> finish! -> Dynamic web module version그대로, 나머지도 그대로! -> next 

-> next(src) -> contect root 화면에서 finish!  -> 'Open Perspective' 클릭! -> 오른쪽 상단에 JAVA EE 생긴걸 확인할 수 있다. // 이 이클립스가 자바 웹개발 모드로 바뀐 것을 의미(모드 변경은 옆에 클릭하면 된다)

 

* SSG : static site generator : 정적 웹사이트 (수동으로 일일이 바꿔주어야 하는)

* Dynamic project : 접속할 때마다 html을 새로 만들어내기 때문에 자동으로 데이터가 적용된다. 

 

 

[ 그 다음 작업할 내용 ]

window - show view - other - server검색 -> servers Open! -> 좌측에 servers 메뉴 생긴다! -> 클릭해서 

드래그해서 package 메뉴 밑에 위치하도록 한다(servers를)//해당 구도로 사용하도록 한다. 

-> blog 의 src 클릭 -> new - Servlet 생성(Servlet 조회되지 않을 경우, other에 조회하면 된다) -> 

Create Servlet : Java package : com.sbs.java.blog   로 통일 -> ★관례_Class name : HomeMainServlet 

(메인페이지를 만든다 한다면) -> Superclass 의미:Servlet을 상속 받고 있다... 

-> next-> next-> finish! 

 

/home/main 의미 : 브라우저에서 해당 코드를 불러오기 위한 주소(경로)

home controller 의 main action 이다.  라는 의미. 

 

[ 사용하기 전 삭제할 코드들 ]

1. private static final long serialVersionUID = 1L;

2. 생성자 

3. 주석 

 

[ 딱 사용할 코드들 ]

1. doGet

2. doPost

 

* 코드 정리를하고 나서 "run" 버튼을 클릭하면 창이 뜬다. 

★ Tomcat v9.0 Server 를 실행하겠다.   라고 한번은 물어본다.  해당 선택 -> "Always use this server when ruuning this project" 선택 -> next -> finish ! -> 액세스 허용 -> ★★ Served at: /blog 이 화면에 확인되지 않는다면 

톰캣 포트 문제로 Servsers 창에 Tomcat 더블 클릭 -> Port Name 에 HTTP/1.1 8080을 8081로 바꿔주고 저장 ! 

내용이 바뀌면 상단 메뉴바에 *가 생긴다? 사라진다??????? 모르겠다... -> 아직 설정 끝나지 않음 

-> window -> preferences -> server 검색 -> server and runtime을 Tomcat v9.0으로 변경한다. -> 

browser 검색 -> Web Browser 선택 -> 1. Use external web browser, 2. Chrome 2가지 선택 변경해준다. 

-> window -> web browser -> Chrome으로 잘 선택되어 있는지 확인한다(혹시 다른 브라우저로 선택되어 있다면 변경!) 

 

 

 

[ 이클립스 웹개발용 사용 시작 // Servlet ]

* response : 응답 

* response.getWriter().append()   -> writer를 return 받을 수 있다.  append()를 모두 출력할 수 있다. 

==> 작성한 것들을 모두 출력하는 ?? 

★ append한 한글이 깨지는 것은 텍스트 타입을 한글로 지정해주지 않았기 때문!

response.setContentType("text/html; charset=utf-8");   을 메서드 내의 상단에 입력해주어야 한다.

 

@WebServlet("/home/main") 의미 :  괄호안의 주소로 접속해야 아래 코드들을 웹페이지에서 확인할 수 있다.

 

 

package com.sbs.java.blog;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/home/main")
public class HomeMainServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html; charset=utf-8");
		int dan = Integer.parseInt(request.getParameter("dan"));
		int limit = Integer.parseInt(request.getParameter("limit"));
		response.getWriter().append("<h1>구구단 " + dan + "단</h1>");
		for ( int i = 1; i <= limit; i++ ) { 
			response.getWriter().append("<div>" + dan + " * " + i + " = " + dan * i + "</div>");
		}
		
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

 

↑ Servlet 으로 구구단 작성 (dan, limit 입력값 받아서 화면에 출력)

★ request.getParameter("dan");  --> 으로 받는 입력어는 String이기 때문에 정수로 바꿔주기 위한 작업을 해야 한다.

 

 

[ Servlet이 JSP에게 응답을 위임 ]

* JSP 파일은 오로지 WebContent 폴더 안에 생성해야 한다.

new -> folder -> jsp/home -> new -> other -> jsp 검색 -> JSP File 선택 -> next -> finish! ->

NewFile.jsp 이름 변경해주기 -> refactor -> rename -> test.jsp 생성(임의/연습용)

 

* localhost:****/blog/jsp/home/test.jsp  -> blog는 어플리케이션을 의미.

그리고 Web Content folder 안에 jsp/home/test.jsp  이 경로 따라가면 test.jsp가 있음. 

==> 이렇게 주소를 입력하면 jsp file로 바로 들어갈 수가 있으나 절대 추천하지 않음.

 

* test.jsp 파일명을 main.jsp 로 변경하셨음. 

* [단축키] : alt + shift + r => file명 변경.

* jsp 파일 복, 붙해서 dan.jsp 1개 추가로 생성.

* request 역할 : 메모장 

 

[ servlet / jsp 호출 비교 ]

 

1. http://localhost:8081/blog/home/dan  : servlet 호출 -> 결과적으로 jsp 가 실행된다. jsp한테 위임했기 때문에.

2. http://localhost:8081/blog/jsp/home/dan.jsp  : jsp 직접 호출  

★ 의문 :  jsp에 직접 호출해도 될텐데 왜 servlet한테 위임해서 일을 하는지??

=> servlet에서 데이터를 저장, 관리하고 일을 나눠서 할 수 있다..

 

 

* request.setAttribute("name", dan + "단");

★request는 servlet과 jsp가 공용으로 사용하는 아이(객체)이다.

-> 결국에는 request를 jsp가 받게 된다.

그래서 살짝 메모를 남겨놓는 것이다. 

 

* request.getAttribute("dan"); --> Object를 return한다. 그래서 형변환을 해주어야 한다. 

 

 

[ 블로그 구현, 기존에 만들어 둔 HTML을 톰캣으로 실행하기 ]

1. blog project  우클릭 -> properties -> show in system explorer -> blog 폴더 안에까지 접속하기 

-> [소스 코드 관리할 대상 : src, WebContent file 2개] // build file : java 파일이 컴파일된 내용이 들어가는 폴더 

//  .classpath(설정), .project(설정)-> 우클릭 git bash here(기존 폴더에 불러야 합쳐진 데이터를 사용할 수 있으므로)

-> git init -> git remote add origin https:// ~~~~~~  저장소 연결 -> 

728x90
반응형
LIST