성장 기록 블로그🌴

! 1011 JSP&Servlet 1일차! 본문

AI & BigData 교육과정/JavaScript 관련

! 1011 JSP&Servlet 1일차!

wlswls2s 2022. 10. 11. 12:08
728x90

< JSP&Servlet 1일차 내용 >

 

 


◆ JSP&Servlet 기본

개념정리

WAS : 프로그램을 자동으로 만들어내는 녀석 ( 프로그램 언어 )

CGI : 서버에서 프로그램과 통신 할 수 있도록 도와주는 녀석 => WAS가 알아서 관리해줌

Server : 웹에서 작동함

Program <--> HTML : 동적으로 동작시켜줌

Program <--> DB

CGI <--> Server Program : thread 발생 -> 자원 관리 도와줌

 

<  Request & Response >

클라이언트로부터 데이터가 넘어오면 데이터를 받아서 처리하는객체와

클라이언트에게 응답을 할 수 있는 객체

 

 

< 3Tier >

 

1. Web Server Programming을 사용하는 이유?

(요청에 따른) 동적인 페이지를 생성하기 위해서

 

2. JSP/Servlet를 배우는 이유

자원관리의 효율성 (1개의 Process에서 다량의 Thread를 생성시켜 처리하여 과부하가 작다)

진입장벽이 높다 (선수과목으로 자바를 충분히 이해해야함)

취업하기가 좋다

 

3. Servlet이란?

Server + Applet의 합성어로 AppletJava프로그램이 웹 서버에서 자동으로 설치되어 동작하는 프로그램

Servlet : Server상에서 작동하는 프로그램, Java기반 웹 어플리케이션 프로그래밍 기술

=> Client 요청에 동적으로 작동하고 , 응답은 HTML을 이용함

=> ServletHttpServlet 클래스를 상속받음

 

< Servlet 특징 >

.java 확장자를 가짐

java Multi Thread를 이용하여 동작함 -> 속도와 메모리 면의 효율성이 존재

객체지향적이며 대규모 Application개발에 적합함

 

<파일 생성 시 >

- servlet에서 main문에 servelet파일이 메인처럼 쓰이기때문에 com 밑에다가 생성해주기

< IP주소 별로 각각에 맞는 페이지 호출해주는 코드 >

package com;

import java.io.IOException;
import java.io.PrintWriter;

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

/**
 * Servlet implementation class Ex01
 */
@WebServlet("/Ex01")
public class Ex01 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 */
	
	
	// service메소드는 자바의 Main메소드와 같은 것임
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		// 요청하는 Client의 IP주소 확인
		String ip = request.getRemoteAddr();
		System.out.println("접속한 사람 ip : " + ip);

		// 문자 인코딩 - 한글로 설정해주겠다! 이거를 response 응답하기 전에 먼저 해줘야함!!
		// 불러오고 한글 인코딩하면 의미없음. 불러오기 전에 해줘야함!
		response.setCharacterEncoding("EUC-KR");
		
		
		// PrintWriter 객체 : Servlet이 HTML문서를 응답할 때
		// HTML 문서 안에다가 태그 및 글자를 작성할 수 있는 객체

		
		PrintWriter out = response.getWriter();
		

		
		// html에 데이터를 넣을 것이므로 html태그를 넣어주기. 닿는 것도!
		out.print("<html>");
		out.print("<body>");
		
		
		//자바 문자열 ==말고 제발 .equals!
		if(ip.equals("222.102.104.118"))
		{
			// 글자 출력 태그 제목 태그 <h1>/<h1>
			//Servlet은 한글 인코딩이 안되고 영어만 됨. 따라서 한글 인코딩 위에서 따로 해줘야함!
			out.print("<h1>짝꿍님! 환영합니다!</h1>");
			
			// 이미지 출력 태그 <img src='이미지경로/파일명'>
			out.print("<img src= 'zzanggu.jpg'>");
		}
		else if(ip.equals("59.0.129.84"))
		{
			out.print("<h1>선생님! 환영합니다!</h1>");
			// 이미지 출력 태그 <img src='이미지경로/파일명'>
			out.print("<img src= 'zzanggu.jpg'>");
		}
		else if(ip.equals("119.200.31.106"))
		{
			out.print("<h1>졍님 밥사주세여 ㅎㅎ</h1>");
			out.print("<img src='catts.jfif'>");
			
			out.print("<br>");
			out.print("<h1>졍님 혹시안바쁘시면..</h1>");
			out.print("<img src='slecat.jpg'>");
			
		}
		else
		{
			out.print("<h1>손님! 환영합니다!</h1>");
			// 이미지 출력 태그 <img src='이미지경로/파일명'>
			out.print("<img src= 'zzanggu.jpg'>");
		}
		out.print("</body>");	
		out.print("</html>");
	}

}

 

# URL Mapping

URL Mapping : web browser에서 Servlet을 동작시키기 위해  URL 값을 연결 시키는 것

< URL Mapping 특징 >
 1. 긴 url을 단축시킬 수 있다
 2. 보안상의 문제를 해결할 수 있다

 

package com;

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;

/**
 * Servlet implementation class Ex02URLMapping
 */

// 클래스가 아니라 여기에 써진 값으로 매핑되는것. 
// 하지만, 주로 우리가 클래스명으로 쓰기때문에 그대로 놔두는 것. 변경 가능
@WebServlet("/Ex02")

//HttpServlet을 상속받아야지만 웹페이지가 실행이 됨
// Servlet에 url을 붙여주는 것을 URLMapping이라고 함
public class Ex02URLMapping extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		// URL Mapping : web browser에서 Servlet을 동작시키기 위해
		// 				URL 값을 연결 시키는 것
		
		// < URL Mapping 특징 >
		// 1. 긴 url을 단축시킬 수 있다
		// 2. 보안상의 문제를 해결할 수 있다
		System.out.println("URLMapping Servlet 실행");
	
	}
}
728x90