성장 기록 블로그🌴
! 1011 JSP&Servlet 1일차! 본문
< 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의 합성어로 Applet은 Java프로그램이 웹 서버에서 자동으로 설치되어 동작하는 프로그램
Servlet : Server상에서 작동하는 프로그램, Java기반 웹 어플리케이션 프로그래밍 기술
=> Client 요청에 동적으로 작동하고 , 응답은 HTML을 이용함
=> Servlet은 HttpServlet 클래스를 상속받음
< 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 실행");
}
}
'AI & BigData 교육과정 > JavaScript 관련' 카테고리의 다른 글
#1014 jsp&servlet 뿌시기! ( bootstrap 사이트 링크 , 쿠키 생성 , 쿠키 삭제 , 쿠키 값 get , bootstrap 활용해서 이미지 체크박스 페이지 구성하기! , 기본 상품 페이지 구성하기) (2) | 2022.10.14 |
---|---|
!1014 JSP&Servlet 뿌시기! ( 로그인 페이지 , 아이디 비밀번호 받아오기 ) (0) | 2022.10.14 |
!1014 JSP&Servlet 뿌시기! ( 랜덤 당첨 결과 , 랜덤으로 점심 메뉴 고르기 , (네이버, 구글, 다음) 사이트로 바로 이동! ) (0) | 2022.10.14 |
!1012 JSP & Servlet 2일차! (0) | 2022.10.12 |
! 1008 자바 스크립트 뿌시기 3일차! ( 배열 , 함수 , 객체 ) (0) | 2022.10.08 |