336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Servlet
HTML에 JSP(java)를 한번에 프로그래밍 하는 것이 아닌 HTML의 CSS 같은 설정 외 Java를 다른 부분으로 빼내서 구현하는 것
Model 2 개발 방법 ( 디자인, 개발을 나눠 유지보수 쉽게 하는 방식)
Servlet은 new -> other에 있다
그럼 다음과 같은 Servlet 파일이 생성된다
doPost 메소드를 보면
2개를 doPost로 보내고 2개를 doGet으로 받는다
doGet 메소드에서
저 줄을 지운 후 이 문장을 추가해 준다
밑의 doPost메소드에서도 내용을 삭제해 준다
# 기본적인 Servlet 구조
그리고 이전의 cal3에서 사용 했던 request 문장을 가져온다
그리고 윗 부분의 주석
을 보면 Java가 실행될 수 있는 URL이다
하지만 최신부분이기에 실무에서는 사용되지 않는다
URL값을 복사해와서 HTML cal3의 form method의 action 주소값을 바꿔준다
그리고 서버에 등록 후 접속 하면 실행된다
프로그램 결과
결과를 갖는데 Console에 결과를 찍고 또한 브라우저에서 출력을 한다
또한 브라우저의 결과값 주소를 보면
와 같이 우리가 설정한 주소로 된다
또한 결과값이 한글이 깨지는데
위의 부분을 추가해 주면 결과값이 정상적으로 출력된다
또한 브라우저에서 유니코드(UTF-8)로 인코딩 설정을 해주면 깨지지 않는다
출력값을 (텍스트)만 브라우저에 출력한 것
# Servlet 이용해서 HTML 보내기
out.print()를 이용해서 html을 작성하면 HTML을 나타낼 수 있다
# Servlet 실무 방식
이 부분을 지운 후 Ctrl + Shift + M 으로 import 해준다
그러면 사이트를 찾을 수 없어서 에러가 발생한다
해결하려면 소스를 추가해줘야 한다
이 소스 파일에 Servlet을 등록해줘야 한다
서블릿을 추가한 후
name은 서블릿이름
class에서는 패키지명.서블릿이름을 작성한다
잘 작성되었다면
위와 같이 마우스 올리면 링크처럼 연결이 되어야 한다
서블릿을 등록했다면 URL과 연동(Mapping)을 시켜줘야 한다
Mapping 할 URL은 이름이 같지 않아도 된다 (임의 지정)
그렇되면 메소드 post를 실행해주는 form에서 action 주소를 변경시켜줘야 한다
로 변경
프로그램 실행 시
주소값을 보면 addition으로 간 것을 볼 수 있다
# 새로운 Servlet 만들기
doGet에는 doPost 설정 후 doPost에 작업
# result.jsp로 결과값 보내주기
AdditionResult2로 서블릿 생성 후 작성
rd.forward로 페이지를 보내주는 것이다
또한 서블릿 등록한다
그리고 form 요청 메소드에 기존 URL을 Result URL로 바꿔준다
결과 값은
# forward
결과는 result.jsp 페이지지만 주소값을 보면 addition2가 나온다
이게 forward 특징인데 상대방에서 주소값을 숨기고 싶을 때 포워드를 이용한다
# forward한 페이지에서 결과값 보기
request.setAttribute (앞으로 보여줄 페이지에 데이터 전달)
request.setAttribute(" key ", value);
HashMap과 같이 key value 형태로 저장되기 때문에 key값만 받아오는 곳에서 key로 받는다면 그 값을 전달 받을 수 있다
받는 곳에서는 ${ key } 하면 키 값이 같은 value 값을 가져온다
result에서는 $ { } 으로 결과값을 출력할 수 있다
$하고 {가 공백없이 붙게되면 에러가 발생하는데
이번 방식으로 아스키코드로 표현하면 된다
결과값 외에도 값을 가져오고 싶다면
여러번 작성으로 key와 value를 적고
받는 페이지에서 key값으로 사용하면 된다
${ f + s } 해도 연산된 결과를 얻을 수 있다
# Redirect
위의 forward 방식과는 처리하는 방식이 다르다
redirect는 주소값을 보낸다
# forward & redirect 구동 방식
- forward
- 웹 브라우저와 Server에 calc4.jsp, result.jsp가 있다면 브라우저가 calc4.jsp를 요청하면 forward로 설정되었다면 Servlet이 result.jsp를 가져와서 그대로 보여준다
- 웹은 1번만 요청한다
- forward 데이터 전달 방식
- request.setAttribute("key", value); 를 통해 데이터를 전달한다
- redirect
- 웹 브라우저에서 calc4.jsp를 요청하고 응답한다
- 웹 브라우저가 Servlet에게 요청하고 응답한다 리턴 내용 : 목적지(result.jsp) 가는 방법 (주소)
- 웹 브라우저가 다시 result.jsp를 가지고 돌아온다
- redirect 데이터 전달 방식
- URL 방법 외엔 없다
- 길이 제한 발생 (255자)
- redirect 사용
- 사용자에게 페이지 URL을 알려야 할 때 페이지가 다름을 인식
- 보통으로 redirect 사용
'[ Developer ] > JSP' 카테고리의 다른 글
[JSP] Filter 필터를 이용한 로그인 세션 체크 (1) | 2016.05.25 |
---|---|
[JSP] JDBC 설치 및 사용 (0) | 2016.05.22 |
[JSP] JDBC (Java Database Connectivity)란? 자바와 DB 연동 (0) | 2016.05.22 |
[JSP] JSTL 사용하기 (0) | 2016.05.04 |
[JSP] JSP란? Java의 웹 개발 (0) | 2016.05.04 |