728x90

MultipartRequest 클래스 사용

1-1 생성자
   MultipartRequest(request, dir)   // dir = savePath
   request 오브젝트와 서버쪽에 저장될 디렉토리
  C:\_java\aa\

1-2 생성자는 MultipartRequest(request, savePath,size,"euc-kr" new DefaultFileRenamePolicy())
    size는 1024 * 1024 * 5 =>  5MB
    다섯번째 인수 : 파일 중복 처리
    동일한 이름이 파일이 업로드되면 자동으로 리네임 해주는 기능.   
2. gegFilesystemName(String str)
   input 항목이름에 해당하는 실제 파일 이름을  알아내기

3. getFile(String str)
   input 항목 이름에 해당하는 파일정보를 File 형태로 리턴

   * MultipartRequest클래스의 생서자가 업로드된 파일의 저장 작업까지 수행한다.
728x90

메일 보내기 , 파일 업로드

http://www.servlets.com  아래 오른쪽 부분에 Download package를 클릭해서

cos26 May2008.zip 다운받아 압축풀고  cos.jar 파일을

jdk경로 \jre\lib\ext 에 복사  , tomcat경로 \lib 에 복사

환경변수 classpath=    ;c:\cos-26Dec2008\lib\cos.jar

tomcat 재구동
---------------
메일보내기
-----------------
MailMessage 클래스 사용

생성자
  MailMessage(host) : MailMessage 생성자 인수에  SMTP 서버 주소 지정
메서드
 1. from(String from) : 보내는 사람 메일 주소
 2. to(String to) : 받는사람 메일 주소
 3. setSubject(String title) : 편지 제목 설정 
 4. getPrintStream() : MailMessage 에서 출력용 스트림 생성
 5. sendAndClose() : 출력용 스트림의 내용을 보내고 종료

sendMail.html
MailSender.java(빈 작성)
sendMail.jsp

<메일서버 설정>
시작 -> 프로그램 -> 관리도구 -> 인터네서비스 관리자  ->기본 SMTP 가상서버 ->우측버튼

728x90
빈의 작성규칙

1. 맴버변수는 private로 선언

2. 맴버변수 값 설정 setter()메서드를 사용합니다.
    public void setName(String name)
        {this.name=name;}

3. 메서드 접근제한자는 반드시 public으로 한다.

4. 맴버변수의 값을 얻기 위해서는 getter()메서드를 사용합니다. 
     public String getName()
      {return name;}

5. 맴버변수가 boolean 혀 일때는 getXxx 사용하지 않고 isXxx() 를 사용한다.

6. 기타 필요한 맴버변수를 만들어 사용 할 수 있다.
     빈의 맴버변수를 property(속성)이라고 합니다.

package mypa;
public class TestBean{
private String id;
private String pwd;

public void setId(String id) { this.id=id;}
public String getId() {return id;}

public void setPwd(String pwd) {this.pwd=pwd;}
public String getPwd() {this.pwd=pwd;}
}


<jsp:useBean id="빈이름" class="패키지.클래스이름" scope="빈의 유효범위 설정">
                                                                         // 빈의 유효범위 : request, session, page(default), application
<jsp:setProperty name="id명" property="빈의 변수명" value="값" /> //set 메소드 호출
<jsp:getProverty name="id명" proverty="빈의 변수명" /> // get 메소드 호출
</jsp:useBean>

setProperty의 6가지 사용법
 1. <jsp:setProperty name="id명" property="빈의 변수명" value="값" />
 2. <jsp:setProperty name="id명" property="빈의 변수명" param="파라미터명"/> //html에서 넘겨준 파라미터값.
 3. <jsp:setProperty name="id명' property="빈의 변수명" />  //html의 파라미터와 빈의 변수 이름이 같을때 생락가능.
 4. <jsp:setProperty name="id명" property="*" /> //html의 파라미터와 빈의 변수이름이 모두 같을때.  편하다..
                                                                       그래서 빈의 변수명과 html파라미터 가 따로놀면 안됨.. 

  <jsp:useBean> 태그액션은 jsp페이지에서 빈을 초기화 하는데 사용, 인자 없는 생성자 호출한다.
                      *인자있는 생성자가 있을때는, 반드시 인자없는 디폴트 생성자를 넣어주어야 한다. 
  <jsp:setProperty> 액션태그는  빈의 property 값을 넣어주기 위해 사용. 
  <jsp:getProperty> 액션태그는 빈의 property 값을 가져오기 위해 사용.
728x90

session오브젝트

앞의 예제는 웹브라우저가 요청하면 웹서버가 응답하는 간단한 구조로 되어 있다.

이러한 웹의 구조는 손님이 가게에 가서 물건을 찾아 달라고 요청하면
가게 주인이 그 물건을 찾아 주는것과 비슷하다.

웹에서는 어떤 물건을 클릭하고
잠시후 다른 물건을 클릭하더라도 
웹서버는 같은 사용자가 요청했는지
다른 사용자가 요청했는지
구별하지 않는다는 것이다.

이렇게 누가 요청을 했는지 구별하지 않고 
단순하게 요청한 파일만 읽어서 서비스 하므로 
웹서버 부담을 줄일수 있다는 장점도 있지만,

쇼핑몰 같이 구매 제품을 클릭할 때마다 누가 클릭했는지 기억해야 하는
사이트에서는 웹서버쪽에 사용자별 기록을 남겨야만 할 것입니다.

웹 서버쪽에 기억 시키는 것을 세션이라고 하고
JSP파일에서는 session오브젝트을 통하여 이용할 수 있습니다.


session오브젝트 메소드

//putValue(name,value)..... session에 name, value 값의 항목를 추가
//getValue(name) ...... session에서 name에 해당하는 value값 읽어오기

setAttribute(name,vlaue) ... session에 name,value값의 항목을 추가 한다 ( 저장 )
getAttribute(name) ... session에서 name 해당하는 value을 읽어 온다 

long getCreateTime() ... 해다 세션을 생성한 시간을 리턴한다 
long getLastAccessedTime() ... 윕 브라우저의 요청이 시도된 마지막 접근 시간을 리턴한다 

String getId() ...해당 세션의 고유한 세션 ID를 리턴한다 

void setMaxInactiveInterval(time) ... 세션 유지 시간을 설정 한다 ( 초 단위로 )
int getMaxIncactiveInterval() ... 세션 유지 시간을 얻는다 

isNew () ..... session이 이번 요청시 새로 생성 되었는지 여부를 리턴 
invalidate() ...... session을 없애기( 세션 무효화)

Jsp파일에서는 session오브젝트는 자동으로 생성되며
page지시자에 session="false" 라고 지정함으로써 
session오브젝트을 생성되지 않게 할 수 있다.

HttpSession getSession() ...세션객체가 추가/삭제 될때 세션을 리턴합니다 

req.getSession(true)...true는 새로운 세션을 create 하고
req.getSession(false)...false 는 현재 세션을 그대로 리턴 해주고 
req.getSession().... 세션 존재 여부를 확인하여 session이없으면 새로이 세션을 생성해주고
                     session이 있다면 그대로 return 해준다. 위위 2개의 장점을 취한 것이다 

+ Recent posts