'Programming/JSP'에 해당하는 글 18건

Jsp + Oracle

Programming/JSP 2013. 4. 29. 22:52

JDBC (Java DataBase Connectivity)는 자바 프로그램에서 데이터베이스 개발을 위한 표준 API를 제공합니다.
JSP로 oracle을 사용하려면 oracle 에서 제공하는 JDBC 드라이버를 설치해야 합니다.
혹은 oracle이 설치되어 있다면 $ORACLE_HOME/jdbc/lib 디렉토리에서도 찾을 수 있습니다.

 

다운로드 URL - http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html

 

ojdbc6.jar 파일을 $TOMCAT_HOME/lib 에 업로드하면 oracle 연결이 가능합니다.

 

 

connection 테스트

 

# vi oracle_conn.jsp
<%@page import="java.sql.*"%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
out.print("JDBC Driver 로딩 완료<br />");


String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "username";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
out.print("Connection 완료");
%>


// print
JDBC Driver 로딩 완료
Connection 완료


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Action tags

Programming/JSP 2013. 4. 19. 00:38

액션 태그는 XML 기반의 태그로 정의되어 있으며 실행 시 자바 코드로 자동 변환됩니다.
다른 파일을 동적으로 삽입할 수 있고, 자바빈즈 컴포넌트를 재사용할 수 있고, 플러그인 사용 등이 가능합니다.
자바 코드를 쓰던 액션 코드를 쓰던 편한대로... 디자이너를 위한다면.............

 

 

Syntax

 

<jsp:action_name attribute="value" />

 

 

<jsp:useBean>

 

<jsp:useBean id="obj" class="package.class" scope="page" />
= package.class obj = new package.class();

 

자바빈즈 객체 생성 태그.
scope 속성은 객체의 유효범위를 나타냄. (page, request, session, application) -> page default
클라이언트로부터 전송된 데이터의 이름을 비교한 후 멤버 변수에 할당시키려면 useBean 태그 안에 다음 구문을 사용.
(자바빈즈에 매개변수 없는 생성자가 있어야 함)

 

<jsp:setProperty name="obj" property="*" />

 

 

<jsp:setProperty>

 

<jsp:setProperty name="obj" property="memVar" value="abc" />
= obj.setMethod("abc")

 

자바빈즈 객체의 set~ 멤버 메소드를 호출하여 멤버 변수 값 설정

 

 

<jsp:getProperty>

 

<jsp:getProperty name="obj" property="memVar" />
= out.print(obj.setMethod());

 

자바빈즈 객체의 get~ 멤버 메소드를 호출하여 멤버 변수 값 리턴

 

 

<jsp:forward>

 

<jsp:forward page="xxx.jsp" />
= pageContext.forward("xxx.jsp)

 

이 액션 태그를 만나면 out.clear() 메소드로 출력 버퍼의 내용이 초기화되고 path 로 제어권 넘김.

 

 

<jsp:include>

 

<jsp:include page="xxx.jsp" />
= pageContext.include("xxx.jsp)

 

path의 파일을 호출하기 전 out.flush() 메소드로 이전 버퍼의 내용을 출력.
path의 파일 처리 후 돌아와서 그 뒤의 코드 처리.

 

 

<jsp:param>

 

<jsp:include page="xxx.jsp">
    <jsp:param name="id" value="abc" />
</jsp:include>

 

include 나 forward 태그 안에 삽입하여 페이지 호출시 매개변수를 전달하는 태그
중복되는 변수가 있다면 param 태그로 정의된 값이 우선 함.

 

 

이 외에도 자바 플러그인을 위한 <jsp:plugin>,
XML 요소를 정의하는 <jsp:element> <jsp:attribute> <jsp:body>,
jsp 페이지에 텍스트를 추가하는 <jsp:text> 등의 태그가 있습니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Cookie

Programming/JSP 2013. 4. 18. 00:20

jsp 에서 cookie 를 사용하려면 javax.servlet.http.Cookie 클래스를 import 해야 하지만,
서블릿 변환시 자동 import 되므로 따로 선언할 필요는 없습니다.

 

예제)

 

<%
String cookieValue = request.getHeader("cookie");  // 헤더에서 쿠키 문자열 가져오기
if(cookieValue == null){  // 쿠키가 없다면 쿠키 설정
    Cookie cookie = new Cookie("name","value");  // 쿠키 객체 생성 : String, String
    cookie.setMaxAge(60*60*12);  // 쿠키 만료일시
    cookie.setDomain("www.oops4u.com");  // 쿠키 도메인 설정
    cookie.setPath("/blog");  // 쿠키 경로 설정
    response.addCookie(cookie);  // 응답 객체에 쿠키 추가 
} else {  // 쿠키가 있다면 읽어오기
    Cookie[] cookies = request.getCookies();
    for(int i=0; i<cookies.length; i++){
        out.print(cookies[i].getName() + ", ");  // 쿠키 이름
        out.print(cookies[i].getValue() + ", ");  // 쿠키 값
        out.print(cookies[i].getMaxAge() + ", ");  // 쿠키 만료일시
        out.print(cookies[i].getDomain() + ", ");  // 쿠키 도메인
        out.print(cookies[i].getPath() + "<br />");  // 쿠키 경로
    }
}
%>

 

쿠키 삭제는 setMaxAge(0) 으로 가능합니다.
이 외에도 HttpOnly, Secure, Comment 등의 속성도 추가할 수 있습니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Session object

Programming/JSP 2013. 4. 17. 23:01

session 내장 객체의 기능

 

  • 클라이언트와 서버간의 상태 유지

 

session 내장 객체는 javax.servlet.http.HttpSession 인터페이스를 구현한 객체입니다.
웹서버에 접속한 클라이언트에게 session 은 유일한 세션 ID를 부여하고 서버의 메모리에 저장하여 클라이언트를 구분합니다.

 

<?
out.print( session.isNew() + "<br />" );  // 새로운 세션인지
session.setAttribute("uid", "uname");  // 세션 등록 : String, Object
String value = (String)session.getAttribute("uid");  // 세션값 얻고 다운 캐스팅
out.print( value + "<br />" );
session.removeAttribute("uid");  // 세션 데이터 삭제
Integer expire = session.getMaxInactiveInterval();  // 세션 만료값(초) 얻기
out.print( expire );
session.invalidate();  // 현재 세션 삭제
?>

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Exception object

Programming/JSP 2013. 4. 16. 00:40

exception 내장 객체의 기능

 

  • 적절한 에러 페이지 출력

 

 

exception 내장 객체는 java.lang.Throwable 클래스 형이며 에러나 예외 처리를 위해 사용합니다.
exception.getMessage(), exception.toString(), ...
<%@ page isErrorPage="true"%> 라고 지정한 jsp 파일에서만 exception 객체를 사용할 수 있습니다.
그 에러 처리 페이지는 web.xml 파일이나 에러 처리가 필요한 jsp 파일에서 지정합니다.

 

 

jsp 파일에서 에러 처리 파일 지정

 

<%@ page errorPage="procError.jsp"%>
이렇게 errorPage가 지정되어 있을 때 이 파일에서 예외가 발생하면,
작동을 멈추고 procError.jsp 페이지로 예외 정보를 넘깁니다.

 

 

web.xml 파일에서는 HTTP 에러 코드나 예외 종류 별로 지정 가능

 

<error-page>
    <error-code>404</error-code>
    <location>/error404Page.jsp</location>
</error-page>

 

<error-page>
    <exception-type>java.lang.NullPointerException</exception-type>
    <location>/errorNullPointerException.jsp</location>
</error-page>

 

이렇게 에러 코드나 예외 종류별 파일을 지정하면,
지정된 에러 코드나 예외가 발생했을 시에 지정된 파일을 출력합니다.
이 때 에러/예외 처리 파일에는 status 200 을 지정하여 정상적인 파일임을 클라이언트에게 알려야 합니다.

 

<% response.setStatus(HttpServletResponse.SC_OK); %>


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,