2016년 8월 11일 목요일

09day JSP

page < request <session < application   -유지시간

  • page - 한 페이지 내부에서 사용할 때(지역변수)
  • request - 한개의 요청에서 처리되는 모든 페이지에서 유지
  • session - 브라우저를 끄거나 제한시간까지 모든 페이지에서 유지
    • 로그인
    • 사용자 저장하려는 정보 서버에 기록하고,
      요청이 있으면 활용가능
    • 각 브라우저별로 독립적
      -한개의 컴퓨터에서 ie, chrome 접속시 : 별개의 세션
    • 사용법
      <%@ page session = "true" %> 디폴트로 되어있음, 사용안할때만 끔
      • getId() - 세션의 고유아이디 확인
      • getCreationTime() - 생성시간 (유닉스 시간 : 1970년부터 밀리세컨드)
      • getLastAccessedTime() -최근 접근시간 (유닉스 시간)
      • getAttribute()
      • setAttribute()
      • invalidate() - 세션 새로 생성
        • 로그아웃
  • application -웹사이트가 리부팅될 때까지 모든 페이지에서 유지



저장 : setAttribute('key' , 내용(객체))
출력 : getAttribute('key')
 forward / include 액션 태그
 데이터 전달
  • jsp: param  -request.getParamter
  • request.setAttribute -request.getAttribute


1
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
    out.println("아이디 : "+ session.getId() + "<br>");
    java.util.Date time = new java.util.Date();
    time.setTime(session.getCreationTime());
    out.println("생성시간 : "+ time.toLocaleString()+ "<br>");
    time.setTime(session.getLastAccessedTime());
    out.println("접근시간 : "+ time.toLocaleString()+ "<br>");    
    
    //세션 유효시간 //30분동안 동작이 없으면 자동 파기 //tomcat 설정에 의해서 처리
    //세션 유효시간 관리를 잘해줘야지 서버 메모리를 효율적으로 사용가능
    out.println("유효시간 : "+ session.getMaxInactiveInterval()+ "<br>");    
    
%>

</body>
</html>


2
로그인 구조

  1. 아이디 ,비밀번호 form
  2. 검사

    • (ok) session 추가  ▶ 로그인 된 페이지로 ▶세션을 검사
    • (no) 이전페이지로
login_form
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="login_ok.jsp" method="post">
    아이디 <input type="text" name="id" size="20"><br>
    비밀번호 <input type="password" name="password" size="20"><br>
    <input type="submit" value='로그인'>
</form>

</body>
</html>
login_ok
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    request.setCharacterEncoding("utf-8");

    String id =request.getParameter("id");
    String password =request.getParameter("password");
    
    //아이디 비번 검사
    int flag = 1;
    if(id.equals("tester") && password.equals("1234")){
        flag = 0;
        //로그인유지를 위한 session 값 넣음
 //서버에서 처리하는 것이기 때문에 클라이언트가 id값을 조작할 수 없음
        session.setAttribute("id", id);
    }
    
    //페이지 이동
    out.println("<script type='text/javascript'>");
    if(flag==0){
        out.println("alert('로그인이 되었습니다');");
        out.println("location.href = 'login.jsp';");
    }else{
        out.println("alert('아이디나 비밀번호가 틀립니다');");
        out.println("history.back();");
    }
    out.println("</script>");
    
%>
login
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    //세션값 불러옴 
    String id = (String)session.getAttribute("id");
    boolean checkLogin = (id==null)?false:true;
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
    if(checkLogin){
        out.println("로그인이 되었습니다.");
    }else{
        out.println("로그인이 안 되었습니다.");
    }
%>

</body>
</html>


3.로그아웃
login_ok
lt;%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    request.setCharacterEncoding("utf-8");

    String id =request.getParameter("id");
    String password =request.getParameter("password");
    
    //아이디 비번 검사
    int flag = 1;
    if(id.equals("tester") && password.equals("1234")){
        flag = 0;
        session.setAttribute("id", id);
    }
    
    //페이지 이동
    out.println("<script type='text/javascript'>");
    if(flag==0){
        out.println("alert('로그인이 되었습니다');");
        out.println("location.href = 'login.jsp';");  //로그아웃 링크
    }else{
        out.println("alert('아이디나 비밀번호가 틀립니다');");
        out.println("history.back();");
    }
    out.println("</script>");
    
%>
logout
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    //로그아웃시 세션을 지움
    session.invalidate();

    out.println("<script type='text/javascript'>");
    out.println("alert('로그아웃 되었습니다');");
    out.println("location.href = 'login.jsp';");
    out.println("</script>");
%>


4. 쿠키
cookie

  • 사용자 브라우저에 데이터 저장
  • 사용자가 쿠키를 삭제 할 수 있음
  • javascript , JSP 둘다 쿠키생성 가능
  • 과정
    • 생성 ▶ 저장 ▶ 전송
  • 특성
    • 이름
    • 유효시간  (유효시간이 없을 경우 브라우저를 닫으면 없어짐)
    • 도메인/ 경로
  • 사용
    • Cookie class
      • getName / setName
      • getValue / setValue
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    //쿠키의 생성
    Cookie cookie1 = new Cookie("name", "tester");
    //쿠키 저장
    response.addCookie(cookie1);
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%= cookie1.getName() %>의 쿠키의 값 = <%= cookie1.getValue() %><br>

</body>
</html>


5
makeCookie
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    //쿠키의 생성
    Cookie cookie1 = new Cookie("name", "tester");
    Cookie cookie2 = new Cookie("age", "23");
    //쿠키 저장
    response.addCookie(cookie1);
    response.addCookie(cookie2);
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%= cookie1.getName() %>의 쿠키의 값 = <%= cookie1.getValue() %><br>
<%= cookie2.getName() %>의 쿠키의 값 = <%= cookie2.getValue() %>

</body>
</html>
readCookie
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
    //쿠키는 배열로 받음
    Cookie[] cookies = request.getCookies();
    if(cookies !=null && cookies.length>0){
        for(Cookie cookie : cookies){
            out.println(cookie.getName() +" / "+ cookie.getValue() +"<br>");
        }
    }
%>

</body>
</html>


6
makeCookie
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.net.URLEncoder"%>

<%
    //쿠키의 생성 (한글일 경우 인코딩)
    Cookie cookie1 = new Cookie("name", URLEncoder.encode("홍길동"));
    Cookie cookie2 = new Cookie("age", "23");
    //쿠키 저장
    response.addCookie(cookie1);
    response.addCookie(cookie2);
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%= cookie1.getName() %>의 쿠키의 값 = <%= cookie1.getValue() %><br>
<%= cookie2.getName() %>의 쿠키의 값 = <%= cookie2.getValue() %>

</body>
</html>
ReadCookie
<%@page import="java.net.URLDecoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
    //쿠키는 배열로 받음
    Cookie[] cookies = request.getCookies();
    if(cookies !=null && cookies.length>0){
        for(Cookie cookie : cookies){
            out.println(cookie.getName() +" / "+ URLDecoder.decode(cookie.getValue(),"utf-8") +"<br>");
        }
    }
%>

</body>
</html>


7. 쿠키 유효시간
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.net.URLEncoder"%>

<%
    //쿠키의 생성
    Cookie cookie1 = new Cookie("name", URLEncoder.encode("홍길동"));
    Cookie cookie2 = new Cookie("age", "23");
    
    //유효시간은 초단위
    cookie1.setMaxAge(60*30);
    cookie2.setMaxAge(60*30);
    //쿠키 삭제
    //cookie1.setMaxAge(-1);
    //cookie2.setMaxAge(0);
    
    //쿠키 저장
    response.addCookie(cookie1);
    response.addCookie(cookie2);
    
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%= cookie1.getName() %>의 쿠키의 값 = <%= cookie1.getValue() %><br>
<%= cookie2.getName() %>의 쿠키의 값 = <%= cookie2.getValue() %>

</body>
</html>


8.표현식
<%=

  • out.println()

EL(Expression Language)

  • ${데이터}

JSTL(JSP Standard Tag Library) : 사용자 정의 태그

  • 액션 태그의 확장판

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page isELIgnored="false" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- EL 출력의 새로운 방법-->
isELIgnored="false"  (default)
<table border='1'>
<tr>
    <td width='200' align='center'>표현언어</td>
    <td width='200' align='center'>값</td>
</tr>
<tr>
    <td align='center'>\${ 10 }</td>
    <td align='center'>${ 10 }</td>
</tr>
<tr>
    <td align='center'>\${ "10" }</td>
    <td align='center'>${ "10" }</td>
</tr>
<tr>
    <td align='center'>\${ 2+5 }</td>
    <td align='center'>${ 2+5 }</td>
</tr>
<tr>
    <td align='center'>\${ 2*5 }</td>
    <td align='center'>${ 2*5 }</td>
</tr>
<tr>
    <td align='center'>\${ 2 div 5 }</td>
    <td align='center'>${ 2 div 5 }</td>
</tr>
<tr>
    <td align='center'>\${ 2 mod 5 }</td>
    <td align='center'>${ 2 mod 5 }</td>
</tr>
<tr>
    <td align='center'>\${ "2" +  5 }</td> <!-- 자동 형변환 -->
    <td align='center'>${ "2" +  5 }</td>
</tr>
<tr>
    <td align='center'>\${ null +  5 }</td> <!-- 자동 형변환 -->
    <td align='center'>${ null +  5 }</td>
</tr>
<tr>
    <td align='center'>\${ 2<3 }</td> 
    <td align='center'>${ 2<3 }</td>
</tr>
<tr>
    <td align='center'>\${ 2 lt 3 }</td> <!-- 부등호 문자 lt -->
    <td align='center'>${ 2 lt 3 }</td>
</tr>
<tr>
    <td align='center'>\${ empty(data) }</td> <!-- 비어있는지 확인 -->
    <td align='center'>${ empty(data) }</td>
</tr>
<tr>
    <td align='center'>\${ (2<3)?"작다":"크다" }</td> <!-- 삼항연산자 가능 -->
    <td align='center'>${ (2<3)?"작다":"크다" }</td>
</tr>
</table>
</body>
</html>


9
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    String name1 = "홍길동";
    request.setAttribute("name2", "박문수");
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- 프린트 일반적인 방법 --%>
<% 
    out.println(name1 +"<br>");  //지역변수는  EL로 표현 못함
    out.println(request.getAttribute("name2") +"<br><br>");  //request객체안에 담긴 변수 EL로 가능함
%>
<%-- EL --%>
${ requestScope.name2 }<br>
${ requestScope['name2'] }<br> <!-- 배열 key로 받아올 수 있음 -->
${ name2 }<br>

</body>
</html>


10.객체별 출력
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    //데이터 담을 수 있는 객체//pageContext // request //session //application
    pageContext.setAttribute("name1", "홍길동");
    request.setAttribute("name2" , "박문수");
    session.setAttribute("name3", "성춘향");
    application.setAttribute("name4", "이몽룡");  //tomcat 종료전까지 브라우저를 꺼도 살아있음
    
    //키값을 동일하게 쓴경우
    pageContext.setAttribute("name", "홍길동");
    request.setAttribute("name" , "박문수");
    session.setAttribute("name", "성춘향");
    application.setAttribute("name", "이몽룡");
    
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 일반적 출력 -->
page : <%= pageContext.getAttribute("name1") %><br><br>
<!-- EL 출력 -->
page : ${pageScope.name1 }<br>
request : ${ requestScope.name2 }<br>
session : ${ sessionScope.name3 }<br>
application : ${ applicationScope.name4 }<br><br>
<!-- EL 단순 출력 -->
page : ${ name1 }<br>
request : ${ name2 }<br>
session : ${ name3 }<br>
application : ${ name4 }<br><br>
<!-- 키값이 동일한경우 우선순위는 가장 가까운 쪽 page▶request▶session▶application -->
<!-- 선언이 안되어있으면 안나옴 (null로찍히지 않음) -->
${ name }

</body>
</html>


11
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- java코드 -->
User-agent : <%= request.getHeader("user-agent") %> <br><br>
<!-- EL : 화살괄호를 쓰지 않을 수 있음 , HTML 디자인하기 변함-->
User-agent : ${header['user-agent'] }ELEx03.jsp

요청 URI : ${ pageContext.request.requestURI }<br>
리모트 URI : ${ pageContext.request.remoteAddr }<br>
리모트 URI : <%= request.getRemoteAddr() %> <br>
</body>
</html>


12. form전송 EL출력
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="login_ok.jsp" method="post">
    아이디 <input type="text" name="id" size="20"><br>
    비밀번호 <input type="password" name="password" size="20"><br>
    <input type="submit" value='로그인'>
</form>

</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
 request.setCharacterEncoding("utf-8");

 //String id =request.getParameter("id");
 //String password =request.getParameter("password");
%>


아이디 : ${param['id']}

비밀번호 : ${param['password']}


아이디 : ${param.id}

비밀번호 : ${param.password}


13. DTO 객체 EL출력
package model1;

public class BoardTO {
 private String subject;
 private String writer;
 
 public String getSubject() {
  System.out.println("getSubject 호출");
  return subject;
 }
 public String getWriter() {
  System.out.println("getWriter 호출");
  return writer;
 }
 public void setSubject(String subject) {
  this.subject = subject;
 }
 public void setWriter(String writer) {
  this.writer = writer;
 }
 
}

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="model1.BoardTO" %>
<%
    BoardTO to = new BoardTO();
    to.setSubject("제목");
    to.setWriter("내용");
    
    //객체를 집어넣을 수 있음
    pageContext.setAttribute("to", to);
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

제목 : ${ to.subject }<br>  <!-- to객체의 멤버변수에 직접 접근하는 것이 아니라 getSubject()메소드로 부름 -->
내용 : ${ to.writer }<br>

</body>
</html>


14
<%@page import="java.util.HashMap"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="model1.BoardTO" %>
<%@page import="java.util.ArrayList"%>
<%
    BoardTO to1 = new BoardTO();
    to1.setSubject("제목1");
    to1.setWriter("내용1");
    
    BoardTO to2 = new BoardTO();
    to2.setSubject("제목2");
    to2.setWriter("내용2");
    
    //배열
    BoardTO[] lists = {to1, to2};
    //ArrayList
    ArrayList<BoardTO> lists2 = new ArrayList<>();
    lists2.add(to1);
    lists2.add(to2);
    //hashmap
    HashMap<String, BoardTO> lists3 = new HashMap<>();
    lists3.put("to1", to1);
    lists3.put("to2", to2);
    
    //배열, Arraylist, Hashmap 집어넣을 수 있음
    pageContext.setAttribute("lists", lists);
    pageContext.setAttribute("lists2", lists2);
    pageContext.setAttribute("lists3", lists3);
    
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<!-- EL : 배열 요소 접근 -->
제목 : ${ lists[0].subject }<br>
내용 : ${ lists[1]['writer'] }<br>
<!-- 내부적으로  exception 처리 되어있어서 NulloutofBounds 익셉션 안생김 -->
내용 : ${ lists[2].writer }<br>

<!-- EL : ArrayList 요소 접근방법 배열과 같음 -->
제목 : ${ lists2[0].subject }<br>
내용 : ${ lists2[1]['writer'] }<br>

<!-- EL : Hashmap 요소 접근방법 -->
제목 : ${ lists3.to1.subject }<br>
내용 : ${ lists3.to2.writer }<br>

</body>
</html>


15.EL 응용
 web project 생성


context.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ELEx02</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <context-param>
      <param-name>ipAddress</param-name>
      <param-value>127.0.0.1</param-value>
  </context-param>
</web-app>

input
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    application.setAttribute("uri", request.getRequestURI());
    
    session.setAttribute("id", "kimsh");
    session.setAttribute("pw", "1234");
    
    String[] subject = new String[]{"국어", "영어", "수학"};
    session.setAttribute("subject", subject);
    
%>

<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Input data</title>
</head>
<body>
<!-- request Param으로 name과 addr을 전송한다 -->
<form method="post" action="Output.jsp">
    이름 : <input type="text" name="name"><br>
    주소 : <input type="text" name="addr"><br>
    선택 : <input type="checkbox" name="language" value="c">C언어
    &nbsp    <input type="checkbox" name="language" value="java">java언어
    &nbsp    <input type="checkbox" name="language" value="basic">Basic언어
    <br>
    <input type="submit" value="전송">
</form>
</body>
</html>

output
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page isELIgnored="false" %>
<!-- 넘어온 매개 변수의 한글 처리를 위해 선언한다 -->
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<meta charset="UTF-8">
<title>Output data</title>
</head>
<body>
<!-- 초기화 매개변수 ipAddress의 값을 추출한다. -->
initParam ipAddress : ${ initParam.ipAddress }<br><br>

<!-- application 영역의 데이터 uri을 추출한다. -->
Application URI : ${ applicationScope.uri }<br><br>

<!-- session 영역의 데이터 id와 pw를 추출한다. -->
Session 아뒤 : ${ sessionScope.id }<br>
Session 아뒤 : ${ sessionScope.pw }<br><br>

<!-- request Parameter인 name과 addr을 추출한다. -->
Request 이름 : ${ param.name }<br>
Request 주소 : ${ param.addr }<br><br>

<!-- session 영역의 배열을 하나씩 추출한다. -->
0번 과목 : ${ sessionScope.subject[0] }<br>
1번 과목 : ${ sessionScope.subject[1] }<br>
2번 과목 : ${ sessionScope.subject[2] }<br><br>

<!-- request Parmeter인  language를 배열로 추출한다. checkbox 선택안하면 공백-->
0번 선택 내용 : ${ paramValues.language[0] }<br>
1번 선택 내용 : ${ paramValues.language[1] }<br>
2번 선택 내용 : ${ paramValues.language[2] }<br>


</body>
</html>


댓글 없음:

댓글 쓰기