• 페이지 흐름 제어
  • <jsp:forward page="이동할 페이지" />
  • <jsp:forward page="이동할 페이지">
        <jsp:param name="파라미터 이름1" value="파라미터값1" />
        <jsp:param name="파라미터 이름2" value="파라미터값2" />
        ...
    </jsp:forward>
  •  GET방식으로 전송시에는
    <jsp:forward page="이동할 페이지.jsp?파라미터 이름1=파라미터 값1&파라미터 이름2=파라미터 값2&.."/> 
    도 가능하다.



Ex1>

forwardTest.jsp

; 이름과 주소 입력 후 전송.

; hidden으로 forward 페이지 전송.

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<form action="forwardTest1.jsp" method="post">

<input type="hidden" name="forwardPage" value="forwardTest2.jsp">

<table>

<tr>

<td>이름</td>

<td><input type="text" name="name" ></td>

</tr>

<tr>

<td>주소</td>

<td><input type="text" name="address" ></td>

</tr>

<tr><td>

<input type="submit" value="전송"/>

</td></tr>

</table>

</form>

</body>

</html>





forwardTest1.jsp

; 중간에 페이지 주소 받아 forward함.

; 전화번호 삽입 후 전송.

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<% request.setCharacterEncoding("euc-kr"); %>

<jsp:forward page="<%= request.getParameter(\"forwardPage\") %>">

<jsp:param value="010-111-1111" name="tel"/>

</jsp:forward>

</body>

</html>



forwardTest2.jsp

; 이름,주소,tel 모두 전송됨.

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

이름 : <%=request.getParameter("name") %><br>

주소:<%=request.getParameter("address") %><br>

tel:<%=request.getParameter("tel") %>

</body>

</html>



'WEB > JSP' 카테고리의 다른 글

22. JSTL  (0) 2013.04.23
21. EL( Expression Language )  (0) 2013.04.23
19. 경로  (0) 2013.04.23
18. Cookie & session  (0) 2013.04.23
17. Thumbnail 이미지  (0) 2013.04.23

절대경로

http://localhost:8080/이부분부터 시작되는 경로
                            /context명/파일명

  : 경로가 바뀌어도 전체경로를 기술하기 때문에 유리할때도 있다.                     
  : context명은 request.getContextPath() 로 가져와서 기술한다.




상대경로

- WEB-INF 밑에 동일한 경로인 경우 
     <a href='a.jsp'>...

- 폴더존재 시 다른 폴더의 파일 참조 시
     <a href='../A/a.jsp' >   : ..상위로 이동 후 해당 경로이 이동한다.

- 폴더 상위 파일
      < a href='../1.jsp' >  : ..상위로 이동. 

'WEB > JSP' 카테고리의 다른 글

21. EL( Expression Language )  (0) 2013.04.23
20. <jsp:forward /> 액션태그  (0) 2013.04.23
18. Cookie & session  (0) 2013.04.23
17. Thumbnail 이미지  (0) 2013.04.23
16. <jsp:useBean> 태그  (0) 2013.04.23

1. 쿠키


1) 서버가 클라이언트에 남기는 정보 부스러기


2) 제한 크기 : 4kb


3) 제한 갯수 : 300개


4) 종류

 - 클라이언트의 하드디스크에 저장되는 쿠키(파일형태로 저장)

 - 클라이언트의 메모리상에 저장되는 쿠키(웹브라우저를 닫으면 사라짐)

   setMaxAge()메소드로 유효시간을 저장하지 않으면 웹브라이저를 닫을때까지 유효


5) 한글은 지원되지 않는다. 한글을 저장하려면 인코딩을 설정해야 한다.


6) 클라이언트가 최초에 서버에 접속했을때는 쿠키는 전송되지 않고 두번째 요청시마다 쿠키가 자동전송된다.


7) 쿠기생성

  Cookie cook=new Cookie("쿠키이름","쿠키값");

  cook.setMaxAge(유지시간);

  response.addCookie(cook);


8) 쿠키수정

 - 동일한 이름의 쿠키를 만들어 response객체에 담는다.

   Cookie cooks = new Cookie("쿠키이름","수정값");

   cook.setMaxAge(유지시간);

   response.addCookie(cook);


9) 쿠키삭제

 - 동일한 이름의 쿠키를 만들어 유지시간을 0으로 준다.

  Cookie cook = new Cookie("쿠키이름","쿠키값");

  cook.setMaxAge(0);//쿠키유지시간을 0으로

  response.addCookie(cook); 





2. 세션


1) http프로토콜은 무상태프로토콜이기 때문에 상태를 저장할 수 없다.

  세션이라는 기술은 그 상태정보를 유지할수 있도록 하는 기술이다.


2) 원리

 - 클라이언트가 최초의 요청을 하면 서버측 메모리에 세션방이 만들어지고 JSESSIONID라는 ID로 해당 세션방에 접근할 수 있다. 클라이언트가 두번째 이상 요청시마다 JSESSIONID가 쿠키에 담겨 전송된다. 서버는 이 ID로 클라이언트를 식별해  세션방을 사용할 수 있도록 한다.  




EX1 >

로그인/아이디 입력 ( id/pwd ) --> 쿠키 생성  --> 쿠키 확인


login.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<form method="post" action="loginOk.jsp">

아이디<input type="text" name="id"/><br/>

비밀번호<input type="password" name="pwd"/><br/>

<input type="submit" value="로그인"/>

</form>

</body>

</html>



loginOk.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<%

//전송된 파라미터 얻어오기

String id=request.getParameter("id");

String pwd=request.getParameter("pwd");

// 전송된 파라미터를 쿠키에 담기

// 쿠키생성

Cookie cook1= new Cookie("id",id);


//쿠키유지시간 설정 (1분간 유효)

cook1.setMaxAge(60*1) ;

Cookie cook2 = new Cookie("pwd",pwd);

cook2.setMaxAge(60*2);

//응답객체에 쿠키를 담아서 클라이언트에 보내기

response.addCookie(cook1);

response.addCookie(cook2);

%>

쿠키가 생성되었습니다.<br/>

<a href="getCookie.jsp">다른 페이지로 이동하기</a><br/>

</body>

</html>



getCookie.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<h2>쿠키 얻어오기</h2>

<%

//request객체를 통해 서버로 전달된 쿠키를 얻어온다.

//(쿠기는 무조건배열로 얻어옴.)

Cookie[] cook=request.getCookies();

//쿠키는 클라이언트가 최초로 서버에 요청할때는 전송되지 않으므로 

// 반드시 null 인지 체크해야 한다.

if(cook!=null){

for(int i=0;i<cook.length;i++){

//쿠키이름 얻어오기

String cookieName=cook[i].getName();

//쿠키값 얻어오기

String cookieValue=cook[i].getValue();

out.println("쿠키이름:" + cookieName + " 쿠키값:" + cookieValue + "<br/>");

}

}else{

%>

쿠키가 없어요.!!

<%

}

%>

</body>

</html>



EX2>

쿠키를 이용해서 최근 본 상품 보여주기



list.jsp 

<%@page import="java.net.URLDecoder"%>

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<h2>판매제품목록</h2>

<ul>

<li><a href="1.jsp">냉장고</a></li>

<li><a href="2.jsp">컴퓨터</a></li>

<li><a href="3.jsp">핸드폰</a></li>

</ul>

<hr/>

<h5>최근 본 상품</h5>

<div>

<%

//쿠키 얻어오기

Cookie[] cook = request.getCookies();

if(cook!=null){

for(int i=0;i<cook.length;i++){

//전송된 쿠키이름 얻어오기

String name=cook[i].getName();

//쿠키이름에 item이 포함되어 있다면

if(name.indexOf("item")!=-1){

//해당 value얻어오기

String value=cook[i].getValue();

//euc-kr로 인코딩되어 있으므로 다시 euc-kr로 디코딩하여야 한다.

String item=URLDecoder.decode(value, "euc-kr");

out.println(item+"<br/>");

}

}

}else{

out.println("최근에 본 상품이 없습니다.");

}

%>

</div>

</body>

</html>





; 리스트에서 냉장고를 클릭하고 "제품목록페이지"로 다시 이동하면 [ 최근 본 상품 ]에 냉장고가 보인다.





1.jsp 냉장고

<%@page import="java.net.URLEncoder"%>

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

냉장고에 대한 상세 페이지입니다.<br/>

모델명 : xxx<br/>

제품가격:xxx원<br/>

<%

//상품에 대한 정보를 쿠키에 담기

//쿠키에 한글은 저장되지 않으므로 encode함수로 인코딩해야 한다.

Cookie cook = new Cookie("item1", URLEncoder.encode("냉장고","euc-kr"));

cook.setMaxAge(60*60);//1시간동안 유지

response.addCookie(cook);

%>

<a href="list.jsp">제품 목록 페이지</a><br/>

</body>

</html>


2.jsp 컴퓨터

<%@page import="java.net.URLEncoder"%>

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

컴퓨터에 대한 상세 페이지입니다.<br/>

모델명 : xxx<br/>

제품가격:xxx원<br/>

<%

//상품에 대한 정보를 쿠키에 담기

//쿠키에 한글은 저장되지 않으므로 encode함수로 인코딩해야 한다.

Cookie cook = new Cookie("item2", URLEncoder.encode("컴퓨터","euc-kr"));

cook.setMaxAge(60*60);//1시간동안 유지

response.addCookie(cook);

%>

<a href="list.jsp">제품 목록 페이지</a><br/>

</body>

</html>



3.jsp 핸드폰

<%@page import="java.net.URLEncoder"%>

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>


핸드폰에 대한 상세 페이지입니다.<br/>

모델명 : xxx<br/>

제품가격:xxx원<br/>

<%

//상품에 대한 정보를 쿠키에 담기

//쿠키에 한글은 저장되지 않으므로 encode함수로 인코딩해야 한다.

Cookie cook = new Cookie("item3", URLEncoder.encode("핸드폰","euc-kr"));

cook.setMaxAge(60*60);//1시간동안 유지

response.addCookie(cook);

%>

<a href="list.jsp">제품 목록 페이지</a><br/>

</body>

</html>




EX 3>

페이지 시작 시 팝업창 보여주고, 팝업창 닫기 체크 시 쿠키에 저장하고, 지정 시간 만큼 안보여 주기



   


main.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">

function showPopup(){

<%

boolean check=false;

Cookie cook[]=request.getCookies();//전송된 쿠키 얻어오기

if(cook!=null){

for(int i=0;i<cook.length;i++){

String name=cook[i].getName();//쿠키이름 얻어오기

String value=cook[i].getValue();//쿠키값 얻어오기

if(name.equals("pop") && value.equals("no")){

check=true;

break;

}

}

}

if(!check){

%>

window.open("popup1.jsp","","width=300,height=200");

<%

}

%>

}

</script>

</head>

<body onload="showPopup()">

<div style="width:900px;height:600px;background-color: pink ">

<h2>우리우리 홈쇼핑</h2>

</div>

</body>

</html>



popup1.jsp

; 자신 페이지로 이동

; 쿠키에 담기

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<div style="width:300px;height: 300px;background-color: yellow;">

<h3>많은 이벤트가 진행중이예요</h3>

<form method="post" action="popup1.jsp" name="frm">

<input type="checkbox" name="ck1" id="ck1" value="no"

onclick="document.frm.submit()"/>24시간동안 창보이지 않기

<hr/>

<a href="javascript:self.close()">닫기</a>

</form>

</div>

<%

//전송된 체크박스 얻어오기

String ck1=request.getParameter("ck1");

if(ck1!=null){//체크박스가 체크된 경우

%>

<script type="text/javascript">

//체크된 상태 유지시키키

document.getElementById("ck1").checked=true;

</script>

<%

//쿠키에 담기

Cookie cook=new Cookie("pop","no");

cook.setMaxAge(60*60*24);//유지시간 24시간 설정

response.addCookie(cook);

}

%>

</body>

</html>



'WEB > JSP' 카테고리의 다른 글

20. <jsp:forward /> 액션태그  (0) 2013.04.23
19. 경로  (0) 2013.04.23
17. Thumbnail 이미지  (0) 2013.04.23
16. <jsp:useBean> 태그  (0) 2013.04.23
15. 파일 첨부  (0) 2013.04.20

1. JAI download 


Java Advanced Imaging API 1.1.3 Download Page 에서 다운.  

압축 해제 후 jai_codec.jar, jai_core.jar  lib에 복사.



jai_codec.jar


jai_core.jar




ex>

...


MultipartRequest mr=new MultipartRequest(

request,  //request객체

dir, //파일을 저장할 폴더

1024 * 1024 * 5,  // 최대업로드 크기 설정(5mb설정)

"euc-kr", //인코딩방식

new DefaultFileRenamePolicy()//동일한 파일명이 존재하면 파일명뒤에 일련번호 부여해 파일생성.

);

...


Enumeration files = mr.getFileNames();

String file = (String)files.nextElement();

filename=mr.getFilesystemName(file);

//System.out.println("thumbnail file:" + file + "  filename:" + filename);

ParameterBlock pb=new ParameterBlock();

pb.add(dir + File.separator + filename);

RenderedOp rOp = JAI.create("fileload", pb);

BufferedImage bi = rOp.getAsBufferedImage();

BufferedImage thumb=new BufferedImage(50,50,BufferedImage.TYPE_INT_RGB);

Graphics2D g = thumb.createGraphics();

g.drawImage(bi, 0, 0, 50, 50, null);

File file2 = new File(dir + File.separator + "sm_" + filename );

ImageIO.write(thumb, "jpg", file2);

..





2. thumbnailator-0.4.3.jar

; Thumbnails 사용하는 방법

; lib에 복사 

; 파일 경로, size(이미지 파일 크기 w, h ), toFile( 실제 저장파일 경로/파일명 )


ex>

Thumbnails.of(upload + File.separator + savefilename).size(80, 80).toFile(upload + File.separator + "tn_" + savefilename );

Thumbnails.of(upload + File.separator + savefilename).size(150, 200).toFile(upload + File.separator + "fr_" + savefilename ); 


thumbnailator-0.4.3.jar





















'WEB > JSP' 카테고리의 다른 글

19. 경로  (0) 2013.04.23
18. Cookie & session  (0) 2013.04.23
16. <jsp:useBean> 태그  (0) 2013.04.23
15. 파일 첨부  (0) 2013.04.20
14. DBCP  (0) 2013.04.20

1. <jsu:useBean/>태그


<jsp:useBean id="빈이름" class="자바빈 클래스 명" scope="사용범위"/>


scope : request, page(기본), session, applicaion



BeanTest.java

package test;


public class BeanTest{

private String name="HongJilDong";


public String getName(){

return name;

}

public void SetName(String name){

this.name = name;

}

}



BeanTest.jsp

...

<jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>

..

<h3><%=beantest.getName() %></h3>

...






2. <jsp:setProperty/>태그

; 자바빈 클래스의 속성값을 설정하기 위한 태그

; setter메소드와 동일


<jsp:setProperty name="빈이름" property="속성명" value="설정할 속성값"/>


<jsp:setProperty/>태그는 자바빈 객체의 멤버변수를 직접수정하는 것이 아니라(private로 선언) set메소드를 호출하여 멈버변수를 수정한다.


예>

<jsp:setProperty name="beantest" property="name" value="Mike"/>


==>

//name에 Mike 를 넣은것과 동일.

public void setName(String name){

this.name = name;

}




3. 클라이언트에서 전송된 파라미터값을 속성값으로 할당할때는 value 대신 param을 이용.


예>

<form action="test.jsp">

Name:<input type="text" name="name"/>

<input type="submit" value="send"/>

</form>


==>


<jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>

<jsp:setProperty name="beantest" property="name" param="name"/>

...

<h3><%=beantest.getName() %></h3>







4. <jsp:getProperty/> 태그

; 자바빈 클래스의 속성값을 가져오기 위한 태그

; getter 메소드와 동일


<jsp:getProperty name="빈이름" property="속성명"/>





'WEB > JSP' 카테고리의 다른 글

18. Cookie & session  (0) 2013.04.23
17. Thumbnail 이미지  (0) 2013.04.23
15. 파일 첨부  (0) 2013.04.20
14. DBCP  (0) 2013.04.20
13. JSP 간단한 예제 ( 목록, 입력, 수정, 삭제 )-model1  (0) 2013.04.19

+ Recent posts