*파라메터처리(접속자가 입력한 값)
=>HTML Form Control이 입력된 값을 서버에서 처리
-
이름 유일
-
=>request.getParameter("이름");=>String
-
이름 중복
-
=>request.getParameterValues("이름");=>String[]
-
파라메터의 이름만 얻기
-
=>request.getParameternames( );=>Enumeration
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; min-height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
<!-- jQuery CDN -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#btnGet").click(function(){
//HTML Form Control의 유효성 검증 후 submit날림
$("#getFrm").submit();
});//click
$("#btnPost").click(function(){
//HTML Form Control의 유효성 검증 후 submit날림
$("#postFrm").submit();
});//click
});//ready
</script>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<div id="getDiv">
<h2>이름이 유일한 HTML Form Control의 값전송-GET</h2>
<form method="get" action="parameter.jsp" id="getFrm">
<table>
<tr>
<td><label>이름</label></td>
<td><input type="text" name="name" class="inputBox"></td>
</tr>
<tr>
<td><label>나이</label></td>
<td><input type="password" name="age" class="inputBox"></td>
</tr>
<tr>
<td><label>메일링 여부</label></td>
<!-- checkbox가 하나라면 배열로 처리되지 않는다. -->
<td><input type="checkbox" name="mailing">수신</td>
</tr>
<tr>
<td><label>성별</label></td>
<td>
<input type="radio" name="gender" value="남자">남자
<input type="radio" name="gender" value="여자"checked="checked">여자
</td>
</tr>
<tr>
<td><label>숨김값</label></td>
<td><input type="hidden" name="addr" value="서울시 강남구 역삼동 한독빌딩"></td>
</tr>
<tr>
<td><label>사용메일</label></td>
<td>
<select name="email" class="inputBox">
<option value="gmail.com">--지메일--</option>
<option value="naver.com">--네이버메일--</option>
<option value="daum.net">--다음메일--</option>
<option value="korea.com">--코리아메일--</option>
<option value="hotmail.com">--핫메일--</option>
</select>
</td>
</tr>
<tr>
<td><label>가입인사</label></td>
<td><textarea style="width:300px;height:100px;"name="greeting"></textarea></td>
</tr>
<tr>
<td><label>취미</label></td>
<td>
<input type="checkbox" name="hobby" value="야구">야구<br/>
<input type="checkbox" name="hobby" value="댄스">댄스<br/>
<input type="checkbox" name="hobby" value="축구">축구<br/>
<input type="checkbox" name="hobby" value="흡연">흡연<br/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="전송" class="btn" id="btnGet"/>
</td>
</tr>
</table>
</form>
</div>
<div id="postDiv">
<h2>이름이 유일한 HTML Form Control의 값전송-POST</h2>
<form method="post" action="parameter.jsp" id="postFrm">
<table>
<tr>
<td><label>이름</label></td>
<td><input type="text" name="name" class="inputBox"></td>
</tr>
<tr>
<td><label>나이</label></td>
<td><input type="password" name="age" class="inputBox"></td>
</tr>
<tr>
<td><label>메일링 여부</label></td>
<!-- checkbox가 하나라면 배열로 처리되지 않는다. -->
<td><input type="checkbox" name="mailing">수신</td>
</tr>
<tr>
<td><label>성별</label></td>
<td>
<input type="radio" name="gender" value="남자">남자
<input type="radio" name="gender" value="여자"checked="checked">여자
</td>
</tr>
<tr>
<td><label>숨김값</label></td>
<td><input type="hidden" name="addr" value="서울시 강남구 역삼동 한독빌딩"></td>
</tr>
<tr>
<td><label>사용메일</label></td>
<td>
<select name="email" class="inputBox">
<option value="gmail.com">--지메일--</option>
<option value="naver.com">--네이버메일--</option>
<option value="daum.net">--다음메일--</option>
<option value="korea.com">--코리아메일--</option>
<option value="hotmail.com">--핫메일--</option>
</select>
</td>
</tr>
<tr>
<td><label>가입인사</label></td>
<td><textarea style="width:300px;height:100px;"name="greeting"></textarea></td>
</tr>
<tr>
<td><label>취미</label></td>
<td>
<input type="checkbox" name="hobby" value="야구">야구<br/>
<input type="checkbox" name="hobby" value="댄스">댄스<br/>
<input type="checkbox" name="hobby" value="축구">축구<br/>
<input type="checkbox" name="hobby" value="흡연">흡연<br/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="전송" class="btn" id="btnPost"/>
</td>
</tr>
</table>
</form>
</div>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info ="Web Parameter 처리"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%
//post방식의 요청일때 한글처리
request.setCharacterEncoding("UTF-8");
String method=request.getMethod();
%>
<strong><%=method %></strong>
<%
//Web Parameter 받기(사용자가 HTML Form Control에 입력한 값 받기)
//Tomcat 8.x 이상은 GET방식일때 한글처리가 된다.(자동으로)
/////////////////////////parameter name이 유일한 경우=>String으로 처리/////////////////////////
String name=request.getParameter("name");//text
String age=request.getParameter("age");//password
String mailing=request.getParameter("mailing");//checkbox가 하나인 경우-선택on/Xnull
String gender=request.getParameter("gender");//radio
String addr=request.getParameter("addr");//hidden
String email=request.getParameter("email");//select
String greeting=request.getParameter("greeting");//textarea
/////////////////////////parameter name이 중복된 경우=>String[]로 처리////////////////////////
String[] hobby=request.getParameterValues("hobby");
%>
<div id="paramOutput">
<ul>
<li>---HTML Form Control의 name속성이 가지는 이름이 유일---</li>
<li>이름 : <%=name %></li>
<li>나이 : <%=age %></li>
<li>메일 수신 여부 : <%=mailing %></li>
<li>성별 : <%=gender %></li>
<li>주소 : <%=addr %></li>
<li>이메일 : <%=email %></li>
<li>가입인사 : <textarea style="width:300px;height:100px;"><%=greeting %></textarea></li>
<li>가입인사 : <%=greeting.replaceAll("\n", "<br/>") %></li><!-- 보기편하게 줄바꿈을 나타나게 하는것 -->
<li>---HTML Form Control의 name속성이 가지는 이름이 중복---</li>
<li>
<%if(hobby!=null){
for(int i=0; i<hobby.length; i++){
//번거롭게 닫고 열고 하지 않고 출력에 대한 내장객체를 사용할 수 있다.(편리//항상은 아님)
//출력 내장객체 : out
out.print(hobby[i]);
out.println(" ");
}//end for
}else{
out.print("선택하신 취미가 없습니다.");
}//end else %>
</li>
</ul>
</div>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
*페이지 이동
-
////내장객체는 아니지만 request이용해...
-
요청시 페이지 이동(Forward)
-
1.이동할 페이지 설정
-
RequestDispotcher rd=request.getReguestDispotcher("uri");
-
2.이름
-
rd.forward(reueqst,resonse);
-
-
브라우저는 페이지의 이동을 알 수 없다.(URL이 그대로이기 때문에)
-
데이터 처리 페이지와 화면 구성 페이지가 분리될 수 있다.(단점은 파일의 갯수가 많아지고 장점은 분리!(일의 구분))//잘쓰면 mvc?pattern
-
=>Servlet =>JSP
-
(이미지) -n자 이동
-
-
서버내의 이동만 가능(URI만 받기 때문)
-
사용법)
-
응답시 페이지 이동(Redirect)
-
브라우저는 페이지의 이동을 알게 된다.(브라우저가 지정된 페이지를 재요청)
-
정상적인 요청인 경우 보여줄 페이지에서 비정상적인 요청이 발생한 경우에 대한 대비 페이지
-
(이미지) -M자 이동
-
-
서버외부로 보낼 수 있다.(URL을 받기 때문)
-
//URL : Uniform Resource Locator(만든이 : 팀버너즈리)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info="접속자에게 응답되지않고 데이터처리를 목적으로 하는 페이지"%>
<%
//응답화면을 만들지 않아 업무로직에 집중할 수 있다.
String[] names={"공선의","이재현","김건하","최혜원","오영근","박정미"};
//처리한 결과를 내가가지는것이 아니라 VIEW-화면 구성 페이지로 전달하게 된다(이때, Scope객체를 사용하는데, 값의 사용범위를 정하는 객체)
//request내장객체는 값을 forward로 이동한 페이지에서 사용할 수 있다.
request.setAttribute("gruop2", names);
//1.이동할 페이지의 URI 설정(도메인+port번호가 빠진경로)
RequestDispatcher rd=request.getRequestDispatcher("forward_b.jsp");
//2.이동
rd.forward(request, response);
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info="업무처리 페이지에서 처리한 결과를 받아 화면을 구성하는 일만 하는 페이지"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%
//이전페이지에서 처리된 결과 받기
String[] member=(String[])request.getAttribute("gruop2");
if(member==null){
response.sendRedirect("forward_a.jsp");
return;
}//end if 아랫줄의 코드를 실행하기 때문에 return;
%>
<table border="1">
<tr>
<th width="100">이름</th>
</tr>
<% for(int i=0; i<member.length; i++){ %>
<tr>
<td><%= member[i] %></td>
</tr>
<%}//end for %>
</table>
<a href="forward_a.jsp?name=jungyun&age=30">parameter 요청</a>
<br/>
<!-- forward로 이동한 페이지에서 이전페이지의 Parameter를 사용할 수 있게된다.값이 넘어오기 때문에 -->
파라메터 이름 : <%=request.getParameter("name") %><br/>
파라메커 나이 : <%=request.getParameter("age") %><br/>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info="redirect의 사용"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%
//정상적인 요청으로 이 페이지를 방문하면 정상적인 응답을 해 주지만
//비정상적인 요청이 있다면 다른페이지로 이동할 때 사용한다.(가릴수 없어서 난수발생으로 보여줄 예정)
if(new Random().nextBoolean()){//비정상적인 요청
//response 내장객체를 사용하여 이동
response.sendRedirect("redirect_b.jsp");//URL을 받으므로 외부 site로 이동도 가능하다.
return;
}//end if
%>
<img src="../common/images/img.png" title="내 목뼈는 정상임...아마도"/>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info="redirect의 연습"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
비정상적인 요청이 있을 때 보여질 페이지<br/>
<a href="redirect_a.jsp?name=jungyun&age=20">요청</a>
<div>
<!-- forward와는 다르게 이동한 페이지에서 파라메터의 값을 사용할 수 없다.
비정상적인 요청이 있을 때 제공될 페이지이므로 이전페이지의 값들을 사용할 필요가 없다.
forward와는 완전히 동작이 달라 명확히 알고 사용해야 한다. -->
파라메터 이름 : <%=request.getParameter("name") %><br/>
파라메터 나이 : <%=request.getParameter("age") %><br/>
</div>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info="브라우저로 출력하는 내장객체"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%
//out 내장객체의 사용.(장점은 scriptlet안에서 끊지 않고 브라우저로 출력할 수 있다.)
String subject="JSP(Java Server Page)-SSS(Server Side Script)중 하나";
out.println(subject);
String[] link={"http://daum.net","http://youtube.com","http://naver.com"};
String[] link_name={"공선의","이재찬","김건하"};
%>
<table border="1">
<tr>
<th width="100">out사용</th>
</tr>
<%
for(int i=0; i<link.length; i++){
out.println("\t\t<tr>");
out.print("\t\t\t<td><a href='");
out.print(link[i]);
out.print("'>");
out.print(link_name[i]);
out.println("</a></td>");
out.println("\t\t</tr>");
}//end for
%>
</table>
<table border="1">
<tr>
<th width="150">Expression사용</th>
</tr>
<% for(int i=0; i<link.length; i++){%>
<tr>
<td><a href="<%=link[i] %>"><%=link_name[i] %></a></td>
</tr>
<% }//end for %>
</table>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
*session
-
접속자의 정보를 서버측 메모리에 저장
-
page directive의 session="true"인 상태에서 내장객체로 지원되고 사용할 수 있다.(비연결성 웹에서 접속자의 정보 저장)
-
값 설정
-
session.setAttribute("이름", 값); //이때 값은 object
-
값얻기
-
session.getAttribute("이름"); =>object
-
생존시간 설정(Tomcat : 30분)-한번만 설정하면 모든 페이지에 동일하게 적용된다.
-
session.setMaxInactiveInterval(초); //초*분*시*일
-
값 삭제(값만 삭제-공간은 남아 있다)-세션은 살아있기 때문에 값 삭제 이후 값을 얻으면 null이 나온다.
-
session.removeAttribute("이름");
-
세션 무효화(세션 자체 삭제)-세션자체가 죽기 때문에 값을 얻을 수 없다.
-
session.invalidate();
-
흐름도)(이미지)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
<!-- jQuery CDN -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$(".btn").click(function(){
chkNull();
});//click
$("[name='id']").keydown(function(evt){
if(evt.which==13){
chkNull();
}//end if
});//keydown
$("[name='pass']").keydown(function(evt){
if(evt.which==13){
chkNull();
}//end if
});//keydown
});//ready
function chkNull(){
var id=$("[name='id']").val();
var pass=$("[name='pass']").val();
if(id==""){
$("[name='id']").focus();
return;
}//end if
if(pass==""){
$("[name='pass']").focus();
return;
}//end if
$("form").submit();//tag selector
}//chkNull
</script>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<div>
<form method="post" action="use_session_a.jsp">
<table>
<tr>
<td colspan="2" align="center">
세션 내장객체 사용 로그인
</td>
</tr>
<tr>
<td>
<input type="text" name="id" placeholder="아이디" autofocus="autofocus" class="inputBox"/>
</td>
<td rowspan="2">
<input type="button" value="로그인" class="btn" style="height:50px; width:50px;"/>
</td>
</tr>
<tr>
<td>
<input type="password" name="pass" placeholder="비밀번호" class="inputBox"/>
</td>
</tr>
</table>
</form>
</div>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
session="true"
info="session 내장객체 사용"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%!
private Map<String,String> logMap=new HashMap<String,String>();
{
logMap.put("gong", "공선의");
logMap.put("lee", "이재찬");
logMap.put("kim", "김희철");
}//instance영역 : 클래스가 실행 될때 자동 호출되며, 한번만 실행된다.
//(이름이 없으므로 개발자가 직접 호출 할 수 없다.)
%>
<%
String id=request.getParameter("id");
String pass=request.getParameter("pass");
if(logMap.containsKey(id)&& "1234".equals(pass)){
//로그인 성공
//세션에 값 설정
session.setAttribute("user_id", id);
session.setAttribute("user_name", logMap.get(id));
//세션의 생존시간 설정
session.setMaxInactiveInterval(60*1);
//Servlet이나 JSP에서 Console로 출력할때 log method 사용.
/* log("--------------로그!!!"+session.getAttribute("user_id")); //쉽게 출력*/
String name=(String)session.getAttribute("user_name");
%>
로그인 성공<br/> <a href="use_session_c.jsp">로그아웃</a><br/>
<%=name %>님 로그인 하셨습니다.<br/>
<a href="job_a.jsp">작업페이지</a>
<%
}else{
//로그인 실패
%>
아이디나 비밀번호를 확인해주세요.<br/>
<a href="use_session.html">로그인</a>
<%
}//end else
%>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info="job_a&b에서 사용할 jsp"%>
<%
//세션에서 값을 얻어와서 값이 존재하지 않는다면 로그인 페이지로 이동
String ses_id=(String)session.getAttribute("user_id");
String ses_name=(String)session.getAttribute("user_name");
if(ses_id==null|| "".equals(ses_id)){//세션이 없어
response.sendRedirect("http://localhost:8080/jsp_prj/day0312/use_session.html");
return;
}//end if
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
session="true"
info="session은 기본이 true라 명시하지 않아도 됨"
%>
<%
//세션의 값 삭제
session.removeAttribute("user_id");
session.removeAttribute("user_name");
//세션 무효화
session.invalidate();
response.sendRedirect("http://localhost:8080/jsp_prj/day0312/use_session.html");
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%@ include file="use_session_b.jsp" %>
<strong><%= ses_name %></strong>님의 작업 페이지<br/>
<a href="use_session_c.jsp">로그아웃</a><br/>
<a href="job_b.jsp">작업 페이지2</a><br/>
<img src="../common/images/img.png"/>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%@ include file="use_session_b.jsp" %>
<a href="use_session_c.jsp">로그아웃</a><br/>
<marquee scrollamount="10"><%= ses_name %>(<%= ses_id
%>) 님의 꿈의 작업페이지2</marquee>
<!-- 태그 안에서 줄을 바꾸면 한줄로 잘나와 -->
<br/>
<img src="../common/images/img2.jpg"/>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
-내장객체 : exception
-
isErrorPage="true"인 상태에서 제공되는 내장 객체
-
예외를 전달받아 처리할 때 사용
-
//예외든 에러든 다 처리 가능
-
errorPage를 가진 JSP에서 발생한 예외 객체를 전달 받는다.
-
이미지)
-
a.jsp에 <%@ errorPage="b.jsp"%>면 b.jsp에 <%@ isErrorPage="true" %>고 <% exception.getMessage(); %>로 전달 받는데,
-
//이때 a에서 발생하는 예외와 에러를 다 전달 받기 때문에 두개를 통틀어 Throwable이라고 하고 객체다형성이라고 한다. 포워드로 전달된다.
-
//객체 다형성(Throwable) 포워드로 무언가 전달이 된다.
<%@page import="java.io.IOException"%>
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
errorPage="use_exception_b.jsp"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<%
int num=new Random().nextInt(3);
if(num==0){
throw new Exception("최상위 예외");
}else if(num==1){
throw new IOException("IO예외");
}else if(num==2){
throw new NullPointerException("객체를 생성하시요.");
}//end else
%>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
isErrorPage="true"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
받아들인 예외의 메세지 :<%=exception %>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
*액션태그(표준 액션)
-
JSP에서 제공하는 기능을 가진 태그들
-
형식)
-
=> //마크업언어의 문법
-
prefix : suffix
-
외부 개발자가 만들어 제공하면 taglib 라고 한다.
-
include - 다른 JSP를 끼워넣어 보여줄 때.(지시자하고는 다르다)
-
-
두개의 jsp가 보여지는 (HTML생성단계) 쪽에서 합쳐진다.
-
변수나 method의 공유되지 않는다.
-
page directive의 충돌이 발생하지 않는다.
-
공통디자인을 만들어두고 필요한 곳에서 사용하기 위해 사용한다.(공통디자인)
-
//각각만들어져 공유가 안된다
-
(이미지)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<div>
<strong>외부 JSP</strong>
<jsp:include page="include_action_b.jsp"/><!-- 이질감이 덜든다.. -->
<strong>외부 JSP</strong>
</div>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
info="include연습"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8080/jsp_prj/common/main_v190130.css"/>
<style type="text/css">
#wrap{margin:0px auto;width:800px; height:860px;}
#header{width:800px; height:140px; background:#FFFFFF url(http://localhost:8080/jsp_prj/common/images/header_bg.png) repeat-x;
position: relative; }
#headerTitle{font-family: HY견고딕,고딕; font-size:35px; font-weight:bold; text-align:center;
/* padding-top: 35px */ position:absolute; top:40px; left:290px; }
#container{width:800px; height:600px; }
#footer{width:800px; height:120px; }
#footerTitle{float: right; font-size:15px; padding-top:20px; padding-right:20px; }
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<div id="headerTitle">SIST Class4</div>
</div>
<div id="container">
<div>
외부 JSP
<%
String name ="김";
%>
<div>
<%@include file="include_b.jsp" %>
</div>
외부 JSP
<br/>
<!-- 외부 JSP에서 끼워지는 JSP의 변수는 에러 없이 사용할 수 있다. -->
나이 : <%=age %>,주소: <%=addr %>
<!-- 변수는공유된다. -->
<%=toDay() %>
</div>
</div>
<div id="footer">
<div id="footerTitle">copyright© all right reserved. class 4.</div>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<div>
<img src="../common/images/img.png"/>
<br/>
내부 JSP
</div>
-
forward - 페이지를 이동할 때(forward방식으로 이동)
-
jsp:forward Page ="이동할 jsp명"
-
이동하는 페이지를 parameter를 붙여서 넘길 때
-
jsp:forward page="
-
-
...
-
useBean
-
VO나 DTO를 생설 할 때
-
-
-setter 호출
-
-
///set을 제외한 메소드명을 소문자로 적으면된다
-
-getter 호출
-
jsp:forward Page ="이동할 jsp명"
'국비지원학원 > JSP' 카테고리의 다른 글
98일차-JSP_JSTL_forTokens (0) | 2019.04.03 |
---|---|
97일차-JSP_JSTL(Jsp Standard Tag Library) (0) | 2019.04.03 |
96일차-JSP_액션태그 (0) | 2019.03.31 |
94일차-JSP tag's (0) | 2019.03.27 |
93일차-JSP (0) | 2019.03.26 |