1. http://www.servlets.com/ 접속

2. 왼쪽 메뉴에서 3번째 - com.oreilly.servlet 클릭!!!

3. cos-26Dec2008.zip  맨밑에 다운!!

4. 압축을 푼다!

5. lib 폴더에 있는 cos.jar 를 이클립스의 WEB-INF의 lib에 넣어준다!!!

 

밑에 두개의 jsp 파일을 실행하면 오류가 난다. 그 이유는

 

fileUpload.jsp에서

 

//파일이 업로드되는 폴더를 지정한다.
 String saveFolder = "fileSave";

 

이렇게 되어 있기 때문에 fileSave 폴더를 만들어야 합니다.

 

어디에 만드냐구요?

 

 

the realpath is : 블라블라~~

 

fileSelect.jsp를 실행후 the realpath is : 블라블라~~

 

[블라블라~~] 경로에 만들어 줘야 합니다.

 

fileSelect.jsp

 <%@ page  contentType="text/html; charset=utf-8"  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>파일 업로드 예제</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form name="fileForm" method="post" enctype="multipart/form-data"
action="fileUpload.jsp">

  <table width="450" border="1" align="center" bordercolordark="#FF9900" cellspacing="0" cellpadding="5">
    <tr bgcolor="#ffcc00">
    <td colspan="2" height="21">
      <div align="center"><b><font size="2">파일 업로드 예제</font></b></div>
    </td>
  </tr>
  <tr bgcolor="#FFff99">
      <td> 작성자</td>
      <td> <b>         <input type="text" name="user" size=30>    </b> </td>
  </tr>
  <tr bgcolor="#FFff99">
      <td> 제  목</td>
      <td>         <input type="text" name="title" size=30>      </td>
  </tr>
  <tr bgcolor="#FFff99">
      <td> 파일명</td>
      <td>         <input type="file" name="uploadFile" size=30>      </td>
  </tr>
  <tr bgcolor="#FFff99">
    <td height="42" colspan="2">
      <div align="center">
        <input type="submit" name="Submit" value="파일 올리기">
      </div>
    </td>
  </tr>
</table>
</form>
</body>
</html>

 

 

fileUpload.jsp

 <%@page import="java.io.File"%>
<%@page import="java.util.Enumeration"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@page import="java.io.IOException"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%
 String realFolder = ""; //웹 어플리케이션의 절대 경로
 
 //파일이 업로드되는 폴더를 지정한다.
 String saveFolder = "fileSave";
 String encType = "utf-8"; //엔코딩타입
 int maxSize = 5 * 1024 * 1024; //최대 업로드 될 파일크기 5mb
 
 ServletContext context = getServletContext();
 
 //현재 jsp페이지의 웹 어플리케이션상의 절대 경로를 구한다.
 realFolder = context.getRealPath(saveFolder);
 out.println("the realpath is : " + realFolder + "<br>");
 
 try{
  MultipartRequest multi = null;
  //전송을 담당할 콤포넌트를 생성하고 파일을 전송한다.
  //전송할 파일명을 가지고 있는 객체, 서버상의 절대경로,
  //최대 업로드될 파일크기, 문자크도, 기본 보안 적용
  multi = new MultipartRequest(request, realFolder, maxSize, encType, new DefaultFileRenamePolicy());
  
  //form의 파라미터 목록을 가져온다.
  Enumeration params = multi.getParameterNames();
  
  //파라미터를 출력한다.
  while(params.hasMoreElements()){
   String name = (String)params.nextElement(); //전송되는 파라미터 이름
   String value = multi.getParameter(name); //전송되는 파라미터 값
   out.println(name + " = " + value + "<br>");
  }
  
  out.println("-----------------------------------------------<br>");
  
  //전송할 파일 정보를 가져와 출력한다.
  Enumeration files = multi.getFileNames();
  //파일 정보가 있다면
  while(files.hasMoreElements()){
   //input 태그의 속성이 file인 태그의 name 속성값 : 파라미터 이름
   String name = (String)files.nextElement();
  
   //서버에 저장된 파일 이름
   String filename = multi.getFilesystemName(name);
   
   //전송전 원래의 파일 이름
   String original = multi.getOriginalFileName(name);
   
   //전송된 파일의 내용 타입
   String type = multi.getContentType(name);
   
   //전송된 파일 속성이 file인 태그의 name 속성값을 이용해 파일 객체 생성
   File file = multi.getFile(name);
   
   out.println("파라미터 이름 : " + name + "<br>");
   out.println("실제 파일 이름 : " + original + "<br>");
   out.println("저장된 파일 이름 : " + filename + "<br>");
   out.println("파일 타입: " + type + "<br>");
   
   if(file != null){
    out.println("크기 : " + file.length());
    out.println("<br>");
   }
  }
 }catch(IOException ioe){
  System.out.println(ioe);
 }catch(Exception e){
  System.out.println(e);
 }
%>

 

JSTL은 Jsp Standart Tag Library
(프로그래밍 기능) 자바 클래스를 태그와 매핑해서 사용하던 커스텀 태그중에서
많이 사용되는 것을 모아놓은것.

 

▶ 라이브러리 어디서 받나?
http://jakarta.apache.org/ -> Taglibs -> Apache Standard Taglib, -> download -> binaries/ -> 버전.ZIP

   받고 나서 압축을 풀고 -> lib -> jstl.jar, standard.jar 를 이클립스의 프로젝트/WebContent/WEB_INF/lib

   에 넣어 주자..

 

 샘플 예제1

Member.java

 

package com.web4.model;

public class Member {
 private String name;

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
}

 

--------------------------------------------------------------------------------------------------

 

<%@ page import="java.util.HashMap"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="member" class="com.web4.model.Member" />

<%
 HashMap<String, String> pref = new HashMap<String, String>();
%>
<html>
<head>
<title>표준 태그 라이브러리(JSTL) 예제</title>
</head>
<body>
<pre>
JSTL은 Jsp Standart Tag Library
(프로그래밍 기능) 자바 클래스를 태그와 매핑해서 사용하던 커스텀 태그중에서
많이 사용되는 것을 모아놓은것.

라이브러리 어디서 받나?
http://jakarta.apache.org/ -> Taglibs -> Apache Standard Taglib, -> download -> binaries/ -> 버전.ZIP

받고 나서 압축을 풀고 -> lib -> jstl.jar, standard.jar 를 이클립스의 프로젝트/WebContent/WEB_INF/lib에 넣어주자..
</pre>


예제1 시작!!!<br><br><br>

<c:set var="member" value="<%= member %>" />
<c:set target="${member}" property="name" value="사용자" />

<c:set var="pref" value="<%= pref %>" />
<c:set var="favoriteColor" value="${pref.color}" />

회원 이름 : ${member.name}<br>
좋아하는 색 : ${favoriteColor}


<br/>
<c:set target="${pref}" property="color" value="red" />
<c:set var="favoriteColor" value="${pref.color}" />
설정 이후 좋아하는 색 : ${favoriteColor}
</body>
</html> 

 

 

 샘플 예제2 - IF문

 <%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
<title>표준 태그 라이브러리(JSTL) 예제 IF</title>
</head>
<body>
<pre>
JSTL은 Jsp Standart Tag Library
(프로그래밍 기능) 자바 클래스를 태그와 매핑해서 사용하던 커스텀 태그중에서
많이 사용되는 것을 모아놓은것.

라이브러리 어디서 받나?
http://jakarta.apache.org/ -> Taglibs -> Apache Standard Taglib, -> download -> binaries/ -> 버전.ZIP

받고 나서 압축을 풀고 -> lib -> jstl.jar, standard.jar 를 이클립스의 프로젝트/WebContent/WEB_INF/lib에 넣어주자..
</pre>


예제2 (IF문) 시작!!!<br><br><br>

<c:if test='true'>
무조건 수행<br>
</c:if>


<c:if test="${param.name =='bk'}">
name 파라미터의 값이 ${param.name} 입니다.<br>
</c:if>


<c:if test="${18 < param.age}">
당신의 나이는 18세 이상입니다.
</c:if>

</body>
</html>

 

 

 샘플 예제3 - choose문

 <%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<head>
<title>표준 태그 라이브러리(JSTL) 예제 CHOOSE</title>
</head>
<body>
예제3 (CHOOSE문) 시작!!!<br><br><br>

<ul>
 <c:choose>
  <c:when test="${param.name == 'bk'}">
  <li>당신의 이름은 ${param.name} 입니다.</li>
  </c:when>
  <c:when test="${param.age > 20}">
  <li>당신의 20세 이상입니다.</li>
  </c:when>
  
  <c:otherwise>
  <li>당신은 'bk'가 아니고 20세 이상이 아닙니다.</li>
  </c:otherwise>
 </c:choose>
</ul>

</body>
</html>

 

 

 샘플 예제4 - forEach문

 <%@page import="java.util.HashMap"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
 HashMap<String, Object> mapData = new HashMap<String, Object>();
 mapData.put("name", "사용자");
 mapData.put("today", new java.util.Date());
%>
<c:set var="intArray" value="<%= new int[] {1,2,3,4,5} %>" />
<c:set var="map" value="<%= mapData %>" />

<html>
<head>
<title>표준 태그 라이브러리(JSTL) 예제 FOREACH</title>
</head>
<body>
예제4 (FOREACH문) 시작!!!<br><br><br>
<h4>1부터 100까지 홀수의 합</h4>
<c:set var="sum" value="0"/>

<c:forEach var="i" begin="1" end="100" step="2">
 <c:set var="sum" value="${sum+i}" />
</c:forEach>
결과 = ${sum}
<br>

<h4>구구단 : 4단</h4>
<ul>
 <c:forEach var="i" begin="1" end="9">
  <li>4 * ${i} = ${4*i}
 </c:forEach>
</ul>
<br>

<h4>int형 배열</h4>
<c:forEach var="i" items="${intArray}" begin="2" end="4" varStatus="status">
 ${status.index} - ${status.count} - [${i}] <br />
</c:forEach>
<br>

<h4>Map</h4>
<c:forEach var="i" items="${map}">
 ${i.key} = ${i.value}<br>
</c:forEach>


</body>
</html>

 

 

 샘플 예제5 - forTokens문

 <%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>표준 태그 라이브러리(JSTL) 예제 forTokens</title>
</head>
<body>
예제5 (forTokens문) 시작!!!<br><br><br>
콤마와 점을 구분자로 사용:<br>
<c:forTokens var="token" items="빨강색,주황색.노란색.초록색,파랑색,남색.보라색" delims=",">
 ${token}
</c:forTokens>

</body>
</html>

 

 샘플 예제6 - url문

 <%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>표준 태그 라이브러리(JSTL) 예제 url</title>
</head>
<body>
예제6 (url문) 시작!!!<br><br><br>

<c:url value="http://search.daum.net/search" var="daum">
 <c:param name="w" value="blog"/>
 <c:param name="q" value="박지성"/>
</c:url>

<ul>
 <li>${daum}</li>
 <li><c:url value="/jstlEx1.jsp" /></li>
 <li><c:url value="./jstlEx1.jsp" /></li>
</ul>

</body>
</html>

 

샘플 예제7 - import문

<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<% request.setCharacterEncoding("utf-8"); %>
<html>
<head>
<title>표준 태그 라이브러리(JSTL) 예제 import</title>
</head>
<body>
예제7 (import문) 시작!!!<br><br><br>

<c:choose>
 <c:when test="${param.type == 'flickr'}">
  <c:import url="http://www.flickr.com/search/">
   <c:param name="f" value="hp"/>
   <c:param name="q" value="보라매공원"/>
  </c:import>
 </c:when>
 <c:when test="${param.type == 'youtube'}">
  <c:import url="http://www.youtube.com/results/">
   <c:param name="search_query" value="보라매공원"/>
  </c:import>
 </c:when>
 <c:otherwise>
  <c:import url="jstlEx1.jsp">
   <c:param name="message" value="선택헤주세요."/>
  </c:import>
 </c:otherwise> 
</c:choose>

</body>
</html>

Expression Language : Script언어
표현식보다 간결하게 사용
EL은 JSP의 기본 문법을 보완

 

 샘플 코드 1

<%@page import="java.util.HashMap"%>
<%@ page contentType="text/html; charset=utf-8"%>
<% request.setAttribute("name", "JSP 프로그래밍"); %>
<!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>
<%= (5+3)%7 %>
<pre>
Expression Language : Script언어
표현식보다 간결하게 사용
EL은 JSP의 기본 문법을 보완

EL은 자료 타입, 수치 연산자, 논리 연산자, 비교 연산자 등을 제공합니다.
</pre>

요청 URI : <%= request.getRequestURI() %><br>
${pageContext.request.requestURI}<br>
request의 name속성 : <%= request.getAttribute("name") %><br>
${requestScope.name}<br>

code 파리미터의 값 : <%= request.getParameter("code") %><br>
${param.code}<br><br><br>

<%
 String st = null;
 int[] array = new int[0];
 HashMap<String, String> map = new HashMap<String, String>();
%>
empty st : ${empty st}<br>
empty "" : ${empty ""}<br>
empty array : ${empty array}<br>
empty map : ${empty map}<br>
</body>
</html>

 

 

 샘플 코드 2 - (표현 언어에서 객체의 메서드 호출) 

Thermometer.java

 

package com.web4.model;

import java.util.HashMap;
import java.util.Map;

public class Thermometer {
 private Map<String, Double> locationCelsiusMap = new HashMap<String, Double>();
 
 public void setCelsius(String location, Double value){
  locationCelsiusMap.put(location, value);
 }
 
 public Double getCelsius(String location){
  return locationCelsiusMap.get(location);
 }
 
 public Double getFahrenheit(String location){
  Double celsius = getCelsius(location);
  if(celsius == null){
   return null;
  }
  return celsius.doubleValue() * 1.8 + 32.0;
 }
 
 public String getInfo(){
  return "온도계 변환기 1.1";
 }
}

 

--------------------------------------------------------------------------------------------------

 

thermometer.jsp

 

 

<%@page import="com.web4.model.Thermometer"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%
 Thermometer thermometer = new Thermometer();
 request.setAttribute("t", thermometer);
%>
<html>
<head>
<title>온도 변환 예제</title>
</head>
<body>
${t.setCelsius('서울', 27.3)}
서울 온도 : 섭씨 ${t.getCelsius('서울')}도 / 화씨 ${t.getFahrenheit('서울')}

<br/>

정보 : &{t.info}
</body>
</html>

<jsp:include> 액션 태그의 기본 사용 방법은 다음과 같다.

 

<jsp:include page="포함할 페이지" flush="false"/>

 

▶page - 포함할 jsp페이지

flush - 지정한 jsp페이지를 실행하기 전에 출력 버퍼를 플러시 할지의 여부를 지정한다. true이면 출력 버퍼를 플러시하고, false이면 하지 않는다.

 

 

샘플코드

 

 main.jsp

 <%@ page contentType="text/html; charset=utf-8"%>
<!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=utf-8">
<title>main.jsp</title>
</head>
<body>
 <jsp:include page="sub.jsp" flush="false"/>
 
 include 이후의 내용
</body>
</html>

 

 sub.jsp

 <%@ page contentType="text/html; charset=utf-8"%>
<br>
sub.jsp에서 생성한 내용
<br>

 

 

결과화면

 

<%@page import="java.io.*"%>
<%@page import="java.net.URL"%>

<%@ page contentType="text/html; charset=utf-8"%>
<!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=utf-8">
<title>ServletContext를 이용한 자원 읽기1</title>
</head>
<body>
 <h3>ServletContext를 이용한 자원 읽기1</h3>
 <hr>
 <%-- ServletContext타입의 jsp내장객체명은 application
ServletContext 객체를 사용해서 웹 컨텍스트 아래 파일 자원 내용 읽어오기 --%>

 소스참조.txt의 실제경로 :
 <%=application.getRealPath("/소스참조.txt")%><br> 소스참조.txt의 내용 :
 <br>

 <%
  FileReader fr = null;
  char[] buff = new char[512];
  int len = -1;
  BufferedReader br = null;
  InputStreamReader isr = null;
  try {
   /* fr = new FileReader(application.getRealPath("/소스참조.txt"));
   while( (len = fr.read(buff)) != -1 ){
    out.println(new String(buff, 0, len)); 
   } */
   isr = new InputStreamReader(new FileInputStream(application.getRealPath("/소스참조.txt")));
   br = new BufferedReader(isr);
   String st = null;
   while ((st = br.readLine()) != null) {
    out.println(st + "<br>");
   }

  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if (fr != null)
     fr.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 %>
</body>
</html>

 

 

-----------------------------  요렇게로도 할 수 있어요!!!--------------------------

 

위 소스에서 변경된 부분에 컬러 넣었어요~~~~

<%@page import="java.io.*"%>
<%@page import="java.net.URL"%>
<%@ page contentType="text/html; charset=utf-8"%>
<!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=utf-8">
<title>ServletContext를 이용한 자원 읽기2</title>
</head>
<body>
 
 <h3>ServletContext를 이용한 자원 읽기2</h3>
 <hr>
 <!-- ServletContext타입의 jsp내장객체명은 application
ServletContext 객체를 사용해서 웹 컨텍스트 아래 파일 자원 내용 읽어오기 -->

<!-- 변수 선언  -->
<% String resourcePath="/소스참조.txt" ; %>
 <font color="blue">
 소스참조.txt의 실제경로 :<%=application.getRealPath(resourcePath)%><br>
 소스참조.txt의 내용 : <br>
 </font>

 <%
  BufferedReader br = null;
  InputStreamReader isr = null;
  try {
   isr = new InputStreamReader(application.getResourceAsStream(resourcePath));
   br = new BufferedReader(isr);
   String st = null;
   while ((st = br.readLine()) != null) {
    out.println(st + "<br>");
   }

  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if (br != null) br.close();
    if (isr != null) isr.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 %>
</body>
</html>

 

-----------------------------  요렇게로도 할 수 있어요!!!--------------------------

 

<%@page import="java.io.*"%>
<%@page import="java.net.URL"%>
<%@ page contentType="text/html; charset=utf-8"%>
<!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=utf-8">
<title>ServletContext를 이용한 자원 읽기3</title>
</head>
<body>
 
 <h3>ServletContext를 이용한 자원 읽기3</h3>
 <hr>
 <!-- ServletContext타입의 jsp내장객체명은 application
ServletContext 객체를 사용해서 웹 컨텍스트 아래 파일 자원 내용 읽어오기 -->

<!-- 변수 선언  -->
<% String resourcePath="/소스참조.txt" ; %>
 <font color="blue">
 소스참조.txt의 실제경로 :<%=application.getRealPath(resourcePath)%><br>
 소스참조.txt의 내용 : <br>
 </font>

 <%
  BufferedReader br = null;
  InputStreamReader isr = null;
  try {
   URL url = application.getResource(resourcePath);
   isr = new InputStreamReader(url.openStream());
   br = new BufferedReader(isr);
   String st = null;
   while ((st = br.readLine()) != null) {
    out.println(st + "<br>");
   }

  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if (br != null) br.close();
    if (isr != null) isr.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 %>
</body>
</html>

 

 

 

 usePageContext.jsp

 <%@ page contentType="text/html; charset=utf-8"%>
<!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=utf-8">
<title> usePageContext.jsp</title>
</head>
<body>
 <%
  //pageContext.getRequest()의 리턴 타입은 ServletRequest인데, JSP페이지가 HTTP요청을 처리하므로 HttpServletRequest로 형변환 
  HttpServletRequest httpRequest = (HttpServletRequest) pageContext.getRequest();
 %>

 

 request 기본 객체와 pageContext.getRequest()의 동일 여부:

 

 <!-- //리턴 값이 같은 객체인지를 검사한다. -->
 <%=request == httpRequest%>

 

<br> pageContext.getOut() 메서드를 사용한 데이터 출력:

 

 <!-- pageContext.getOut().println()은 out.println()과 동일하다. -->
 <%  pageContext.getOut().println("안녕하세요!"); %>
</body>
</html>

 

<%@ page contentType="text/html; charset=utf-8"%>
<!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=utf-8">
<title>outTest.jsp</title>
</head>
<body>


<%= 10%3 %><br> <!-- Expression -->
<% out.print(10%3); %><br> <!-- Scriptlet -->
${10%3}<br> <!-- EL(Expression Language) -->


</body>
</html>


요청 전달 ↓

1. RequestDispatcher방식 - 동일한 웹서버내에 웹 컨텍스트내의 jsp나 servlet으로 요청을 

전달할 수 있습니다. (다른 웹서버 혹은 다른 웹 컨텍스트로 요청 전달 불가) - 정보 공유 : 요청을 전달할때 다른 추가적인 정보를 전달할 수 있습니다. - url과 실제 응답 content의 page와 다름

2. sendRedirect방식 - 동일한 웹서버, 다른 웹서버로 요청을 전달 가능 - 요청은 get 방식으로 전달됩니다. - 동일한 웹서버의 jsp나 servlet으로 전달된 경우 전달된 페이지에서 request, response객체가 새로 생성됩니다 그러므로 정보 공유 불가능합니다. - 최종 응답페이지의 경로가 url로 표시됩니다.



---------------------------------------------------------------------------------------------------------


샘플 파일 구성


basicform.jsp  ==>  appendform.jsp  =>  resultInfo.jsp


1. basicform.jsp  - 아이디와 이메일을 입력받는다.

2. appendform.jsp  - 추가로 주소와 핸드폰 번호를 추가한다.

3. resultInfo.jsp  - 최종 결과 화면으로 아이디, 비밀번호, 주소, 핸드폰 번호를 출력한다.



▶basicform.jsp

<%@ page contentType="text/html; charset=utf-8" %>

<!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=utf-8">

<title>basicform.jsp</title>

</head>

<body>

<center><h3>기본 정보 입력 폼</h3></center><hr>

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

이름 : <input type="text" id="userid" name="userid"><br>

이메일 : <input type="text" id="email" name="email"><br>

<input type="submit" value="다음">

<input type="reset" value="취소">

</form>

</body>

</html>


appendform.jsp

<%@ page contentType="text/html; charset=utf-8"%>

<!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=utf-8">

<title>appendform.jsp</title>

</head>

<body>

<%

request.setCharacterEncoding("utf-8");

request.setAttribute("address", "서울시 강남구");

request.setAttribute("phone", "010-123-1234");

//response객체 : javax.servlet.http.HttpServletResponse타입

//절대경로

//response.sendRedirect("http://localhost:8000/web3/resultInfo.jsp"); 

//상대경로 & 쿼리

//response.sendRedirect("./resultInfo.jsp?address=seoul&phone=010-123-1234");

  String addr = "서울시 강남구";

String addrValue=URLEncoder.encode(addr, "utf-8");

response.sendRedirect("./resultInfo.jsp?address=addr&phone=010-123-1234");

response.sendRedirect("http://www.naver.com");

%>

</body>

</html>


resultInfo.jsp

<%@ page contentType="text/html; charset=utf-8"%>

<!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=utf-8">

<title>resultInfo.jsp</title>

</head>

<body>

<%

//application 내장객체 : javax.servlet.ServletContext타입

out.println("userid : " + request.getParameter("userid") + "<br>");

out.println("email : " + request.getParameter("email") + "<br>");

out.println("address : " + request.getAttribute("address") + "<br>");

out.println("phone : " + request.getAttribute("phone") + "<br>");

%>


</body>

</html>


결과화면


response.sendRedirect("http://www.naver.com");  를 이용하였기 때문에 네이버로 이동한다.

+ Recent posts