JSP 2일차

2. 서블릿 개요및 작성, 활용법->다음주 금요일(팀을 구성)->다음주 주제?->주제발표



형식) 링크문자열을 이용해서 특정함수를 호출하는 형식
<a href=”JavaScript:호출할함수명“>링크문자열</a>
<a href=”JavaScript:goBox(document.BoxForm)”>표만들기</a>
AB+AC+AD=>A(B+C+D)
=================================
chrome->요소검사를 통해서 자바스크립트 디버깅
firefox->firebug

(1) 크롬으로 웹브로우저로 변경

chrome

windows->web browser->chrome선택


● 웹프로그래밍 작성->서블릿(모델2), JSP작성(모델1)->Spring

○ 프로젝트명 : ServletTest
Servelt=>초창기에 자바언어로 웹프로그램을 실행
자바언어+20~30%(html,css,js)
도서관리도 서블릿으로 변경가능

Java Resources -> src 마우스오른쪽버튼-> new -> servlet

servlet

servlet_1

class Name: HelloServlet

URL mappings=>웹상에서 어떻게 하면 서블릿을 실행시킬수 있는지 그 경로를 지정해주는 옵션(논리적인 경로)
물리적인 경로->실제 존재하는 경로(c:\p~chrome.exe)
/ 실행시킬 서블릿이름->defalut

Ex) HelloServlet.java

helloservlet

실행결과
http://localhost:8090/ServletTest/HelloServlet
                                                프로젝트명/실행시킬 서블릿클래스명

helloservlet_result


요청을 받아서 처리해주는 서블릿을 작성
send.html(이름,주소)——>~.jsp
                                GetData->서블릿

Ex) send.html

send

Ex) GetData.java(서블릿)

servlet_get

getdata

▶ get방식=>전달되는값이 url창에 노출
http://localhost:8090/ServletTest/GetData?name=홍길동&addr=서울시+강남구
                                            /서블릿클래스명?매개변수명=전달할값&매개변수=전달할값

error_get

HTTP Status 405 – HTTP method POST is not supported by this URL ==>post—>doPost()처리가 안되니깐 오류


1) response.setContentType(“text/html”);

한글????

실행결과

??? ???? ??? ??? ??

??=???
??=??? ???

2) response.setContentType(“text/html;utf-8″);

실행결과

당신이 입력하신 내용은 다음과 같다(Tomcat 7.x)
이름=???–>매개변수로 받는 부분은 깨짐
주소=???

3) response.setContentType(“text/html;utf-8″);

//매개변수로 받는데이터는 한글데이터 처리
request.setCharacterEncoding(“utf-8″);====>7.0

실행결과

????????????????????????

?????=임시테스트
?????=서울시 강남구

==>post방식의 경우에는 정상적으로 한글처리가 된다
get방식의 경우에는 한가지 더 옵션을 설정?
톰캣서버의 server.xml에 다음과 같이 추가해줘야 된다.

server_utf-8

※ 8.0에서는 할 필요가 없다.


사이트 접속시=>공지사항창

ServleteTest
         |
        -src->Notice.java(3)->파일의 내용+html문서
        -WebContent——–>index.jsp(2)
                  |
                 -notice->201441.txt(1)

※ 사용자가 get or post방식으로 와도 다 처리가능

service

Ex) 201541.txt                                              Ex) index.jsp 

201541  index

Ex) Notice.java

notice

실행결과

index_notice


● 특정사이트에 접속

ServleteTest
         |
        -src->SocketTest.java 
        -WebContent
                  |
                 -notice->201441.txt(1)

Ex) SocketTest.java

sockettest

==>Socket을 사용하면 안됨

sockettest_result


● URL클래스

servlet -> Ex) URLTest.java

urltest

실행결과

urltest_result


● JSP문법

1.스트립트릿 ->jsp 1일차 참조
2.표현식 ->jsp 1일차 참조
3.선언문 ->jsp 1일차 참조
4.주석 ->jsp 1일차 참조
5.page지시어->Directive
   1) page지시어 -> jsp문서를 작성할때 기본적인 환경설정을 지정
<%@ page [language=”java”] contentType=”text/html; charset=UTF-8″ pageEncoding=”UTF-8″%>
   ▶ language=”java” => jsp에서 사용되고 있는 언어->java(default값)
   ▶ ★contentType★ => jsp가 생성할 문서의 유형을 지정 ->접속한 사용자들에게 보여줄 문서의 종류를 지정
                                              (text/html=defalut는 영문위주) ;charset=utf-8(한글처리)
   ▶ pageEncoding=”UTF-8″=> 한글처리
   2) include지시어
   3) taglib 지시어=>모델2(액션태그,표현언어)처리


◎ import 속성, trimDirectiveWhitespaces 속성(공백제거), info속성(주석대용-거의안씀)

date_import


▶ GetRequest=>서블릿

Ex) GetRequest.java

getrequest

실행화면

request.getRemoteAddr()= 0:0:0:0:0:0:0:1 ->ip주소
request.getMethod()= GET ->전송방식
request.getRequestURL()= http://localhost:8090/ServletTest/GetRequest ->풀네임
request.getRequestURI()= /ServletTest/GetRequest ->http프로토콜부터 포트번호를 제외한 나머지부분
request.getContextPath()= /ServletTest // ->현재 프로젝트명

※ response.setHeader()->다운로드 할때 필요함(추가적인 정보를 저장)


◎ 페이지이동

Ex) res.jsp

res


다음시간 -> 5장, 6장 -> 내장객체 종류->영역?  액션태크?(forward, include)->include지시어