2016. 9. 26. 23:40ㆍProgramming/JSP
시작하기 전에....
웹서버: 웹페이지가 돌아가는 서버를 말한다. 정확히 말하자면 HTML, CSS에 초점에 맞춰져있는 서버를 말하며 정적인 페이지를 주로 처리한다.
(ex. 아파치)
서블릿이나 JSP를 가지고는 동적인 페이지를 처리하는데
그 서블릿이나 JSP의 스크립트 번역하는 것이 어플리케이션 서버다(ex. 톰캣, JBoss)
1. 기본 표현방식
<%@ page ... %> 페이지 정보
<% ... %> JAVA 언어 사용
<%= sum %> JAVA 계산값
<%! public void method() %> 메서드 포함
request.getServerPort()
http://localhost:8080/chap03/requestInfo.jsp
request.getServerName() request.getRequestURI()
<GET방식 파라미터 전송법>
<a href=“a.jsp?name=김구&address=상해”>링크</a>
2. HTML 표현방식
<테이블 구성요소>
h1 ~ h6 : 각 섹션의 제목을 나타냄(계층 구조;h1의 등급이 가장 높음)
<tr> : 횡렬의 셀(table Row)로 정의
<th> : 종렬의 셀(table Horizon)으로 제목셀을 정의
<td> : cell (표안의 항목; table DataCell)로 데이터셀을 정의
2. 기본 메소드
<속성 관련>
getAttribute(String name): 이름이 name인 속성 값 구하기
setAttribute(String name, Object value): 이름이 name인 속성 값을 value로 지정
removeAttriute(String name): 이름이 name인 속성 삭제
getAttributeNames(): 속성의 이름 목록 구하기
*Attribute vs. Parameter
Attribute: 개발자가 설정하는 값
Parameter: 브라우저(사용자)에서 넘어오는 값
<이러한 속성의 4가지 쓰임새>
1) pageContext: 한 JSP 내에서 공유될 값 저장
2) request: 한 요청 처리하는 JSP 간 정보 전달
3) session: 한 사용자 관련 정보 JSP 간 공유
4) application: 모든 사용자 관련해 공유할 정보(웹 어플리케이션 설정 정보 같은)
3. 흐름 제어
1) 페이지 삽입
<jsp:include page=“포함할 페이지” flush=“true” />
* jsp:include : for 중첩처럼 페이지 안에서 실행될 페이지 설정
** flush: 지정 JSP 실행 전 출력 버퍼 flush(흘려보낼지) 결정
2) 코드 삽입
<%@ include file=“포함할 파일(코드)” %>
3) 처리 넘기기(jsp:forward)
<jsp:forward page=“이동할 페이지” />
*상담원이 전화 넘기듯, 다른 jsp에서 요청에 응답하게 함
<활용 예제>
if(구입문의){
forwardPage=“구입URI”;
}else if(판매문의){
forwardPage=“판매URI”;
<jsp:forward page=“<%= forwardPage %>” />
4) request.속성을 이용해 값 전달하기
<From>
Calender cal = new Calender();
request.setAttribute(“time”, cal);
<jsp:forward page=“/to/viewTime.jsp”/>
<To>
Calender cal = (Calendar) request.getAttribute(“time”);
4. 에러 처리
<error-page>
<error=code>404(에러코드)</error-code>
<location>/error/error404.jsp(에러페이지 URI)</location>
</error-page>
*error404.jsp를 customize(에러 내용, 해결 방법 등 기록)
**범용적 에러 코드는 web.xml(공통 페이지)에 에러 페이지 넣는다.
***별도 처리해야할 exception 타입은 web.xml에 <exception-type>을 넣는다.
5. <jsp:useBean>
JSP에서 일반적으로 데이터는 자바bean 클래스에 담아 보여줌.
1) 객체 생성하기(jsp 태그로)
<jsp:useBean id=“info”, class=“ch11.member.MemberInfo” scope=“[범위=request]” />
*범위로는 page(default), request, session, application 중 하나가 선택됨.
**다음과 같은 뜻
MemberInfo info = new MemberInfo();
request.setAttribute(“info”, info); //어느 속성에, 어떤 값을 넣는가
<활용 예제>
<From>
<jsp:useBean id=“member” class=“ch11.member.MemberInfo” scope=“request” />
<% member.setId(“crazy91”); %>
<% member.setName(“이광인“); %>
<jsp:forward page=“/useObject.jsp” />
<To>
<jsp:useBean id=“member” class=“ch11.member.MemberInfo” scope=“request” />
//이곳에서도 똑같이 bean 객체 만들어야함
<%=memeber.getName() %>
<%=member.getId() %>
6. DB에서 데이터 읽어오기
<To> viewMemberList.jsp
1) JDBC 드라이버 로딩(차장 준비)
Class.forName(“com.mysql.jdbc.Driver”); 드라이버 이름
2) DB Connection 생성(다음 역과 연락; 로그인 필요)
conn = DriverManager.getConnection(url, id, pw);
3) Statement 생성(열차 출발 명령)
stmt = conn.createStatement();
4) 쿼리 실행(승객 조회 실행)
rs = stmt.executeQuery(query)
5) 쿼리 출력(무임승차 빼냄)
while(rs.next()){
rs.getString(“NAME”)
6) rs, stmt, conn 순서대로 종료(close();)
*url 형식
jdbc:mysql://호스트 IP:포트번호/DB이름?[param=값1¶m2=값2&...] +캐릭터set
7. PreparedStatement(=pstmt)
:query 안 ?에 직접 값을 넣어줄 수 있게 해줌
<활용 예제>
PreparedStatement pstmt = null; //초기화
pstmt = conn.prepareStatement(“insert into MEMBER(ID, NAME) values (?, ?)”);
pstmt.setString(1, “crazy91”); //첫 번째 ? 값 지정
pstmt.setString(2, “이광인”); //두번째 ? 값 지정
'Programming > JSP' 카테고리의 다른 글
Day 5(9/21) 회원 추가 기능 구현 (0) | 2016.09.27 |
---|---|
Day 4(9/20) MemberList Back단 구현(+Bean클래스 만들기) (0) | 2016.09.27 |
Day 3(9/19) 회원리스트 화면 만들기 (0) | 2016.09.19 |
Day 2(9/13) 회원가입 페이지 만들기 (0) | 2016.09.19 |
Day 1(9/12) 톰캣 설치 & 첫 Servlet 생성 (0) | 2016.09.19 |