출처 돌아이 Int.Com. | 돌아이
원문 http://blog.naver.com/dolicom/7871207
다음 문서는PowerPoint 문서가
1. 첨부파일
2. 카페에 자료가 있습니다.
 
 
7. JSP의 기초
 
n       html JSP와의 관계
      JSP처리 서버는 html 파일 처리가능
       html내에 jsp page를 연결할 수 있다.
 
n       한글 처리
       html-jsp-DB 간의 한글 코드는 각각 다르다.
       jsp 프로그램 내에서 변환 한다.
 
n       Cookie
       접속된 web brower의 상태 유지를 위해
       상태 정보를 client 쪽에 저장 한다.
 
n       Session
       상태 정보를 server 쪽에 저장 한다.
 
 
8. CGI 모델
 
Server Client data 교환
 
사용자 삽입 이미지

9. html
JSP와 연동
 
html에서 JSP 연결 및 parameter 전달
 
사용자 삽입 이미지


10. html
JSP의 한글
 
 
사용자 삽입 이미지

 
만약 위와 같이 매 변수 영역 각각을 getBytes() 메소드를 사용하여 코드변환이 불편하면 다음과 같이 한번에 한다.
 
request.setCharacterEncoding("euc-kr")을 사용 한다. 위의 프로그램을 다시 쓰면
 
<%@ page import="java.sql.*”
         contentType="text/html;charset=euc-kr" %>
<%
 
request.setCharacterEncoding("euc-kr")
 
   String id = null;
   String passwd = null;
   String name = null;
 
     id      =request.getParameter("uid");
     passwd =request.getParameter("upassword");
     name   =request.getParameter("uname ");
 
%>
<HTML>
<HEAD>
<TITLE>회원등록</TITLE>
<META http-equiv=Content-Type
             content="text/html; charset=euc-kr">
</HEAD>
<BODY>
이름은 <%=name%> 입니다.
</BODY>
</HTML>
 
 
11. JSP MySQL
 
Server 내의 실행
 
사용자 삽입 이미지

 
<%@ page import="java.sql.*" contentType="text/html;charset=euc-kr" %>
<%

 try {
   String m_name=null;
   String m_passwd=null;
 
    m_name   = request.getParameter(“name");
     m_passwd = request.getParameter("passwd");
 
    Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    Connection conn = DriverManager.getConnection(
                  "jdbc:mysql://www.icom4u.co.kr/test?user=jtest&password=‘jtest123’");

    Statement stmt = conn.createStatement();
    ResultSet rs=stmt.executeQuery(
                  "select * from member where m_name='"+m_name+"'");
  
    String m_id=null;
 
     if(rs.next()) {   // Read Data
        m_id         = rs.getString(1);
        m_passwd = rs.getString(2);
        m_name    = rs.getString(3);
        out.print(“이름은  = “ + new String(m_name.getBytes(“8859_1”), “euc-kr”) );
     }
 
     rs.close();
     stmt.close();
   …
}
%>
 
 
 
12. Session
 
 
서버측에 저장된 브라우저의 고유정보
 
사용자 삽입 이미지

 
 
 
 
특징
 
    대표적인 예로 ID password 인증 시 로그인 후 로그인 정보를 session에 저장
    서버의 보안이 유지 되는 한 정보의 보안이 유지
    client 접속과 동시에 11로 대응 된다.
    정보의 구성 이름과 값으로 정의 된다.
 
 
Session method
 
n       정보 설정, 정보 얻기,
 
  getId(); 
    브라우저 헤더의 설정된 seesion id
  setAttribute(String parameterName, String value);
     session에 정보 저장
  getAttribute(String parameterName );
     session 정보 가져 오기
 
n       JSP 프로그램 : class session
 
- 이미 준비 된 instance
       session.setAttribute(u_id, honggildong);
                  : 첫번째 인수 u_id는 프로그램과 비교하면 변수로 보고,
                    두번째 인수 honggildongu_id에 저장되는 값으로 생각하면 편리함.
     
      String m_id = session. getAttribute(u_id);  - session u_id의 값을 가져옴.
 
n       Session 정보의 유지 시간 설정
 
  사용자가 페이지 열고 나서 아무 행동도 하지 않으면 서버는 무작정 기다리는데, 서버측에서 session 정보를 무작정 저장하고 있으면 문제가 될 수 있으므로 제거할 필요가 있음. 세션의 값은 default 값이 결정 되어 있으나 JSP 코드에서 지정하고 싶으면 다음과 같이 코딩한다.
  
   session.setMaxInactiveInterval(3600); - 단위는 초
       => 해당 브라우저를 닫거나, 3600초 후에는 session가 없어 짐.
 
n       Session 정보 제거
 
- 사용자가 logoff 하면 session 정보 중 일부 또는 session 전부를 제거할 수 있다.
 
    1. session  정보 중 일부 제거 :
         session.removeAttribute("u_id"); - u_id 만 제거 됨
         String uid = session.getAttribute("u_id"); => 제거 후면 null return
    2. session  정보 전부 제거 :
         session.invalidate();
 
 
13. Cookie
 
Client측에 저장된 브라우저의 고유정보
 
 
 
 
 
사용자 삽입 이미지

 
 
 특징
 
         대표적인 예로 ID password 인증 시 로그인 후 로그인 정보를 cookie에 저장
         정보의 구성 이름과 값으로 정의 된다.
 
 
Cookie method
 
n       정보 설정, 정보 얻기,
 
class Cookie의 메소드
        setPath(String dir);   -  정보 저장 위치
        setMaxAge(String parameterName, String value); -  cookie 정보 유지 시간
 
class request의 메소드
        addCookie(class cook);    -    cookie 추가
 
 
n       Cookie 정보 쓰기
 
    Cookie cook = new Cookie(name, value); - cookie instance를 만든다.
    cook.setPath(/);
    cook.setMaxAge(60*60*2); - 단위 초
    reponse.addCookie(cook); - 정보 추가
 
n       Cookie 정보 읽기
 
    Cookie [] cks = request.getCookie();  -   모든 cookie 정보를 가져 온다.
    String name = cks[0].getName(); - array cks[0]의 정보이름
    String nval = cks[0].getValue();   - array cks[0]의 정보값
 
n       Cookie 정보 제거 절차
 
- 사용자가 logoff 하면 cookie 정보 제거
 
   Cookie 설정
      Cookie [] cookies = request.getCookie();
 
   제거 예
      for (int cnt =0; cnt < cookies.length;cnt++ ) {
         Cookie cook = cookies[cnt];
         cook.setMaxAge(0);
         response.addCookie(cook);
      }
 
n       설정
 
   Cookie cook = new   Cookie(name, value);
   cook.setPath(/);
   cook.setMaxAge(60*60*2); - 단위 초
 
n       사용
 
    Cookie [] cks = request.getCookie();
    String name = cks[0].getName(); - array cks[0]의 정보이름
    String nval = cks[0].getValue();
 
n       제거
 
     cook.setMaxAge(0);