분류 |
용어/속성 |
설명/예제 |
JSP Model |
Model1 |
Browser <-> JSP <-> javaBean <-> DB |
Model2 | - JSP 모델2 = MVC (Model-View-Controller) - Browser <-> Servlet(Controller) <-> JSP(View) <-> JavaBean <-> DB - 순수 자바코드로만 되어있는 서블릿. 프론트엔드 분리 가능한게 이점이다. | |
JSP 페이지 디렉티브 | language (기본 : java) | 스크립트가 사용할 언어를 지정한다. |
import | 사용할 자바 클래스를 지정한다. | |
session (기본 : true) | HttpSession 사용 여부를 지정한다. | |
buffer | 출력 버퍼 크기를 지정한다. | |
autoflush (기본 : true) | 출력 버퍼가 가득 찬 경우 저장되어있는 데이터를 내보낸다. | |
isErrorPage (기본 : false) | 해당 페이지를 에러페이지로 지정한다. errorPage="occ_error.jsp | |
pageEncoding (기본: ISO-8859-1) | 페이지의 문자 인코딩을 지정한다. | |
스크립트 요소 | 스크립트릿 <% 자바 소스코드 %> | JSP에서 자바코드를 사용한다. |
선언문 <%! 멤버선언 %> | 멤버 변수/ 멤버 메서드를 선언한다. | |
표현식 <%=값 또는 변수 %> | 서블릿의 out.println() 메서드와 유사하다. 데이터를 출력할 때 사용한다. | |
주석문 | 소스코드를 설명한다. | |
include 디렉티브 <%@ 파일 주소 %> | 포함될 파일의 이름을 명시한다. <%@include file="top.jsp"%> | |
내장객체 | request | 웹 브라우저 요청 정보를 저장한다. |
response | 웹 브라우저 응답 정보를 저장한다. | |
out | 페이지의 출력 내용을 가진 출력 스트림이다. | |
session | 세션 정보를 저장한다. | |
exception | 예외 발생을 처리한다. | |
액션 태그 | include | 다른 페이지 실행 결과를 현재 페이지에 포함한다. 파라미터를 넘길 수 있다는 점에서 include 디렉티브와 다르다. <jsp:include page="Top.jsp"> <jsp:param value="admin" name="id" /> </jsp:include> |
forward | 다른 페이지로 넘어가도 파라미터 데이터를 유지한다. <jsp:forward page="Redirect.jsp"/> | |
useBean | DB 연동 시 자주 사용되는 자바 클래스로서 jsp와 db간 반복되는 데이터 읽기/저장을 효율적으로 할 수 있다. | |
- 패키지 생성 : Eclipse > Java Resources > New > Package | ||
- 클래스 생성 : Package > New > Class | ||
- 클래스 작성 규칙 : 폼의 입력 필드와 자바 변수명을 동일하게 매핑한다. Login.jsp - <input type="password" name="pass_chk"> Javabean - package test; public javabean_class { private String pass_chk; } | ||
- 프로퍼티 생성 Eclipse > Source > Generate Getters and Setteres > Select All > OK | ||
setProperty | 폼으로부터 전달된 데이터를 자바빈 객체에 저장하고, 읽어온다. Login_Proc.jsp javabean_class bean = new javabean_class(); <jsp:useBean id="bean" class="test.javabean_class" > <jsp:setProperty name="bean" property="*"/> <!-- *은 모두 매핑 --> </jsp:useBean> <jsp:getProperty property="pass_chk" name="bean" /> | |
getProperty | ||
DB 연동 | 오라클 DB 연결 | ojdbc.jar를 다운받은 뒤 tomcat\lib 폴더로 이동시킨다. |
String dbID = "system"; String dbPassword = "123456"; String dbURL = "jdbc:oracle:thin:@localhost:1521:XE"; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection(dbURL, dbID, dbPassword); } catch(Exception e) { e.printStackTrace(); } } | ||
커넥션 풀 | server.xml 파일에 Resource auth 코드를 추가한다. | |
<Context docBase="test1" path="/test1" reloadable="true" source="org.eclipse.jst.jee.server:test1"> <Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" loginTimeout="10" maxWait="5000" name="jdbc/pool" password="123456" type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:xe" username="system"/> </Context> | ||
try{ Context initctx = new InitialContext(); Context envctx = (Context)initctx.lookup("java:comp/env"); DataSource ds = (DataSource)envctx.lookup("jdbc/pool"); conn =ds.getConnection(); }catch(Exception e){ e.printStackTrace(); } | ||
DB Data 제어 | DTO (Data Transfer Object) | 데이터 임시 저장 객체로서 DAO와 프로퍼티를 주고 받을 때 사용한다. |
...중략 public class MemberBean{ private String name; private String id;
public String getName() { return name; } public void setName(String name) { this.name = name; } } ... 중략 | ||
DAO (Data Access Object) | DB에 접근 후 데이터 추가,삭제,수정 작업을 하는 객체로서 유지보수의 편이성과 코드의 모듈화를 위해 사용한다. | |
... db connection ... public class MemberBeanDAO{ public Vector<MemberBean> allSelectMember(){ Vector<MemberBean> v = new Vector<>(); pstmt = conn.prepareStatement("SELECT * FROM MEMBER"); rs = pstmt.executeQuery(); while(rs.next()){ MemberBean bean = new MemberBean(); bean.setName(rs.getName(1)); bean.setId(rs.getId(2)); v.add(bean); } return v; } } | ||
VIEW | <% MemberBeanDAO mDAO = new MemberBeanDAO(); mDAO.allSelectMember(); Vector<MemberBean> vec = mDAO.allSelectMember(); for(int i = 0 ; i<vec.size();i++){ MemberBean bean = vec.get(i); } %> |
'프로그래밍 > 웹' 카테고리의 다른 글
HTML Application - hta (0) | 2020.12.24 |
---|---|
ajax 개념 (0) | 2020.12.20 |
이클립스 설치 및 톰캣 연동 (1) | 2020.11.14 |
웹 크롤링 환경 구축 및 예제 (0) | 2020.07.23 |
textarea 크기 자동 조절 (0) | 2020.07.12 |