본문 바로가기

컴퓨터학원(복습)(수료)

자바(JAVA)기반 안드로이드 웹&앱 개발 53일차(서블릿 구현, get, post, JSP 구현, 서블릿의 기초, 쿼리 스트링, 유효성검사)

[서블릿 구현 (web.xml로 매핑하기)]

[서블릿을 만드는 방법]

1. @WebServlet 어노테이션을 사용

1) 이클립스에서 New -> Servlet 추가 메뉴를 이용하여 url 을 설정할 수 있음

2. web.xml 을 이용하는 방법

1) HttpServlet 클래스를 상속받은 Servlet.class 를 생성

2) 서블릿 및 url 매핑을 web.xml에 정의해준다.

※ 서블릿을 추가하면 tomcat을 다시 구동해야 한다. -> compile을 하기 때문에

jsp를 추가하거나 변경하면 tomcat을 다시 구동하지 않아도 된다. -> interpreter 방식이기 때문에

[Form method get/post]

<get method>

절대경로를 사용하도록 하자. request.getContextPath()

☞ get 메소드는 Header에 값을 보여주기 때문에 도청위험이 있다.

<Post 메소드>

☞ post 메소드는 암호화가 가능하고 파라미터를 data로 보내기 때문에 보안이 좋다.

[JSP(Java Server Page)]

1. 자바로 서버 페이지를 작성하기 위한 언어

2. HTML 문서 내부에 자바 코드가 들어가는 구조

<-> 서블릿 : 자바 코드 내부에 HTML 코드가 들어가는 구조

<두 수의 합을 구하여 출력하는 JSP>

☞ MVC Model 1 : Control + Viewr 가 JSP 안에 같이 들어 있다. (주로 소규모 회사에서 사용)

<두 수의 합을 출력 : 서블릿 + JSP>

1. MVC Model 2 : View와 Control을 분리(규모 있는 회사에서 주로 사용)

1) 서블릿 : Control(서비스 로직)을 처리

2) JSP : View (화면 출력)을 처리

요청되는 URL은 jsp/AdditionServlet02 이지만 화면에 보여지는 것은 addition03.jsp이다. (forward 특징)

[서블릿의 기초]

1. URL Mappings : WebServlet annotation

1) 서블릿을 동작시키기 위해서 실체 자바 클래스 명을 사용하는 대신 서블릿을 요청하기 위한 문자열을 사용

2. 서블릿을 요청하기 위한 url

1) http://localhost:8080/jsp/hello

(1) http : 프로토콜

(2) localhost : hostname

☞ Domain name 또는 IP address

(3) 8080 : port 번호

☞ tomcat을 설치하면서 지정한 포트 번호

(4) jsp : Context Path

☞ 애플리케이션에 접근하기 위한 경로 : 보통 프로젝트 명

☞ 응용 애플리케이션 별로 다른 Context Path를 사용하여 다수를 운영 가능(hospital, movie, 등)

☞ '/'로 변경 가능

(5) hello : 서블릿 요청 url 패턴

3. 서블릿의 동작원리

1) 브라우저에서 서블릿을 요청

2) WAS 안의 웹서버가 서블릿요청을 인식하여 서블릿 컨테이너에게 서블릿을 수행하도록 넘겨줌

3) 서블릿 컨테이너는 스레드를 기동하여 해당 서블릿 객체를 생성하여 이를 수행

4) 서블릿 객체의 작업이 종료되면 기동되었던 스레드가 종료됨

5) 서블릿 수행 결과가 웹 서버에 전송

6) 이를 클라이언트에 전송

4. 서블릿의 라이프 스타일(LifeCycle)

 

1) 서블릿의 특징 : 수행속도가 빠름

2) PHP/ASP : 요청될 때마다 인터프리터 방식으로 코드가 재해석이 되어 수행속도가 느림

[중복되는 내용들은 생략하겠습니다. 교안에서 get, post 방식이 한번 더 나오네요. 절대경로 내용하고]

[쿼리 스트링(Query String) 이란?]

1. 사용자가 입력한 데이터를 서버에서 얻기 위해 사용하는 기술

ParamServlet?이름1=값1&이름2=값2&...

1) get 방식 : Header에 실림

2) post 방식 : data에 실림

2. url 인코딩 규칙

1) 영문자 대소문자와 숫자 : 그대로 전달

2) 공백은 '+'로 변환

3) 한글은 UTF-8로 인코딩

[request와 getParameter]

1. 서블릿에서 사용자의 입력 값을 얻는 방법

<input type="text" name="id> // input 태그의 name 속성의 값

String id = request.getParameter("id");

1) getParameter() 의 반환형은 String

2) int 로 저장하기 위해서는 변환 필요

int age = Integer.parseInt(request,getParameter("age"));

[입력 파라미터 유효성 검사]

1. 입력 데이터가 입력되지 않은 상태에서 전송 버튼 클릭시

1) 예외 발생 : NumberFormatException -> 사용자가 당황스러움 발생

2) 사용자가 제대로 된 값을 입력할 수 있도록 유도 필요

3) 유효성 체크 : HTML, Javascript, JSP 에서 실행

2. HTML 측면

1) 필수 입력 파라미터는 required 속성 사용

2) 필수로 입력은 되었지만 값이 잘못 입력될 경우 javascript에서 유효성검사

3. onclick = "return check()"

1) true 일 때 서버 전송

2) false 일 경우 서버로 전송하지 않음

js 파일을 어떻게 경로설정했는지 기억이 안나서.. 프로그램이 동작을 안하네요..

월요일 학원가게 되면 확인해보겠습니다.