다음 문서는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");
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’");
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;
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”) );
}
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();
…
stmt.close();
…
}
%>
%>
12. Session
서버측에 저장된 브라우저의 고유정보

• 대표적인 예로 ID 및 password 인증 시 로그인 후 로그인 정보를 session에 저장
• 서버의 보안이 유지 되는 한 정보의 보안이 유지
• client 접속과 동시에 1대1로 대응 된다.
• 정보의 구성 이름과 값으로 정의 된다.
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”는 프로그램과 비교하면 변수로 보고,
두번째 인수 “honggildong”는 “u_id”에 저장되는 값으로 생각하면 편리함.
String m_id = session. getAttribute(“u_id”); - session 중 “u_id”의 값을 가져옴.
n Session 정보의 유지 시간 설정
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 정보 쓰기
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);