CH 01内蔵対象(09-15鋼)

103077 ワード


1.練習リクエストオブジェクト1


*requestオブジェクトは、次のページで結果値を渡すことはできません。


(次のページでのみフォームラベルとaラベルで値を渡すことができます)


<body>
	<center>
	<h2>로그인 페이지</h2>
		<form action="RequestLoginProc.jsp" method="post">
			<table width="400" border="1">
				<tr height="60">
					<td align="center" width="150">아이디</td>
					<td align="left" width="250">
						<input type="text" name="id">						
					</td>
				</tr>
				<tr height="60">
					<td align="center" width="150">비밀번호</td>
					<td align="left" width="250">
						<input type="password" name="pass">					
					</td>
				</tr>
				<tr height="60">
					<td colspan="2" align="center">
						<input type="submit" value="전송">
					</td>
				</tr>
			</table>						
		</form>	
	</center>
 </body>
=>>結果

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<!-- RequestLogin에서 넘어온 아이디와 비밀번호를 읽는 방법 2가지 -->
<%
	// 사용자의 정보가 저장되어있는 객체 request객체의 getParameter() 메서드를 이용해서 사용자의 정보를 추출
	String id = request.getParameter("id"); // 사용자의 id값을 읽어드려서 변수 id에 저장하시오
	String pass = request.getParameter("pass");
%>
	당신의 아이디는 <%=id %> 이고 비밀번호는 <%=pass %> 입니다.	
	<h2>	
	<a href="RequestForward.jsp">다음 페이지</a>
	</h2>		
</body>
</html>
=>>結果
あなたのIDはdarkozで、パスワードは1234です.
次のページ
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<!-- RequestLogin에서 넘어온 아이디와 비밀번호를 읽는 방법 2가지 -->
<%
	// 사용자의 정보가 저장되어있는 객체 request객체의 getParameter() 메서드를 이용해서 사용자의 정보를 추출
	String id = request.getParameter("id"); // 사용자의 id값을 읽어드려서 변수 id에 저장하시오
	String pass = request.getParameter("pass");
%>
	<h2>
	RequestForward 페이지 입니다. <br>
	당신의 아이디는 <%=id %> 이고 비밀번호는 <%=pass %> 입니다.	
	</h2>
</body>
</html>
=>>結果
「転送要求」ページ.
ユーザー名はnull、パスワードはnullです.

===>requestオブジェクトは、結果値を次のページに渡すことはできません。


(次のページでのみフォームラベルとaラベルで値を渡すことができます)


1.リクエスト対象練習2


=>>結果

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<center>
		<h2>회원 가입</h2>
		<form action="RequestJoinProc.jsp" method="post">
			<table border="1" width="500">
				<tr height="50">
					<td width="150" align="center">아이디</td>
					<td width="350" align="center">
						<input type="text" name="id" size="40" placeholder="id를 넣으세요">
					</td>
				</tr>
				<tr height="50">
					<td width="150" align="center">비밀번호</td>
					<td width="350" align="center">
						<input type="password" name="pass1" size="40" value="0000">
					</td>					
				</tr>
				<tr height="50">
					<td width="150" align="center">비밀번호 확인</td>
					<td width="350" align="center">
						<input type="password" name="pass2" size="40">
					</td>					
				</tr>
				<tr height="50">
					<td width="150" align="center">이메일</td>
					<td width="350" align="center">
						<input type="email" name="email" size="40">
					</td>					
				</tr>
				<tr height="50">
					<td width="150" align="center">전화번호</td>
					<td width="350" align="center">
						<input type="tel" name="tel" size="40">
					</td>					
				</tr>
				<tr>
					<td width="150" align="center">당신의 관심분야</td>
					<td width="350" align="center">
						<input type="checkbox" name="hobby" value="캠핑"> 캠핑 &nbsp;&nbsp;
						<input type="checkbox" name="hobby" value="등산"> 등산 &nbsp;&nbsp;
						<input type="checkbox" name="hobby" value="영화"> 영화 &nbsp;&nbsp;
						<input type="checkbox" name="hobby" value="독서"> 독서 &nbsp;&nbsp;
					</td>					
				</tr>
				<tr height="50">
					<td width="150" align="center"> 당신의 직업은</td>
					<td width="350" align="center">
						<select name="job">
							<option value="교사">교사</option>
							<option value="변호사">변호사</option>
							<option value="의사">의사</option>
							<option value="기술사">기술사</option>							
						</select>
					</td>
				</tr>
				<tr height="50">
					<td width="150" align="center">당신의 연령은?</td>
					<td width="350" align="center">
						<input type="radio" name="age" value="10">10대 &nbsp;&nbsp;
						<input type="radio" name="age" value="20">20대 &nbsp;&nbsp;
						<input type="radio" name="age" value="30">30대 &nbsp;&nbsp;
						<input type="radio" name="age" value="40">40대 &nbsp;&nbsp;						
					</td>
				</tr>
				<tr height="50">
					<td width="150" align="center"> 하고싶은 말</td>
					<td width="350" align="center">
						<textarea rows="5" cols="40" name="info"></textarea>
					</td>
				</tr>
				<tr height="50">
					<td colspan="2" align="center"> 
						<input type="submit" value="회원 가입">
						<input type="reset" value="취소">
					</td>
				</tr>
			</table>
		</form>
	</center>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
   pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<center>
	<h2>회원 정보 보기</h2>	
	<% 
	// post 방식으로 데이터가 넘어올때 한글이 깨질 수 있기에
	request.setCharacterEncoding("EUC-KR"); 	
	// 각종 사용자로부터 넘어온 데이터를 저장해줌
	String id = request.getParameter("id");
	String pass1 = request.getParameter("pass1");
	String pass2 = request.getParameter("pass2");
	String email = request.getParameter("email");
	String tel = request.getParameter("tel");	
	// []배열 타입으로 리턴
	//getParameterValues() 메서드는 순서없이 모든 데이터(중복선택 된 데이터)가 저장
	String[] hobby = request.getParameterValues("hobby"); 
	String job = request.getParameter("job");
	String age = request.getParameter("age");
	String info = request.getParameter("info");		
	if(!pass1.equals(pass2)){
%>
	<script type="text/javascript">
		alert("비밀번호가 틀립니다."); // 경고창
		history.go(-1);
	</script>
<%
	}
	%>	
	<table width="500" border="1">
		<tr height="50">
					<td width="150" align="center">아이디</td>
					<td width="350" align="center">
						<%=id %>
					</td>
				</tr>
				<tr height="50">
					<td width="150" align="center">비밀번호</td>
					<td width="350" align="center">
						<%=pass1 %>
					</td>					
				</tr>				
				<tr height="50">
					<td width="150" align="center">이메일</td>
					<td width="350" align="center">
						<%=email%>
					</td>					
				</tr>
				<tr height="50">
					<td width="150" align="center">전화번호</td>
					<td width="350" align="center">
						<%=tel%>
					</td>					
				</tr>
				<tr height="50">
					<td width="150" align="center">관심분야</td>
					<td width="350" align="center">
					<%
						for(int i=0; i<hobby.length; i++){
							out.write(hobby[i]+" ");
						}
					%>
					</td>
				</tr>
				<tr height="50">
					<td width="150" align="center">직업은</td>
					<td width="350" align="center">
						<%=tel%>
					</td>
				</tr>
				<tr height="50">
					<td width="150" align="center">나이대</td>
					<td width="350" align="center">
						<%=age%>
					</td>
				</tr>
				<tr height="50">
					<td width="150" align="center">하고싶은 말</td>
					<td width="350" align="center">
						<%=info%>
					</td>
				</tr>
	</table>
	</center>
</body>
</html>

2.練習応答対象1

  • response.sendRedirectメソッドを使用する場合
  • 現在のページを画面に表示せずに、次のページに移動します.
    =>>結果

  • <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
    	<center>
    	<h2>로그인 페이지</h2>
    		<form action="ResponseLoginProc.jsp" method="post">
    			<table width="400" border="1">
    				<tr height="60">
    					<td align="center" width="150">아이디</td>
    					<td align="left" width="250">
    						<input type="text" name="id">						
    					</td>
    				</tr>
    				<tr height="60">
    					<td align="center" width="150">비밀번호</td>
    					<td align="left" width="250">
    						<input type="password" name="pass">						
    					</td>
    				</tr>
    				<tr height="60">
    					<td colspan="2" align="center">
    						<input type="submit" value="전송">
    					</td>
    				</tr>
    			</table>						
    		</form>	
    	</center>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>로그인 처리 페이지</title>
    </head>
    <body>
    	<h2>로그인 처리 페이지</h2>	
    	<%
    		request.setCharacterEncoding("euc-kr");	
    		//임의적으로 id와 pass를 설정
    		String dbid = "aaaa";
    		String dbpass = "1234";		
    		// 사용자로부터 넘어온 데이터를 입력 받아줌
    		String id = request.getParameter("id");
    		String pass = request.getParameter("pass");		
    		if(dbid.equals(id) && dbpass.equals(pass)){
    			// 아이디와 패스워드가 일치하면 페이지를 보여줌
    			// response.sendRedirect 메서드 사용시 현재 페이지를 화면에 표시하지 않고 다음 페이지로 넘어감!!
    			response.sendRedirect("ResponseMain.jsp?id="+id);
    		}else{
    	%>
    		<script type="text/javascript">
    			alert("아이디와 비밀번호를 다시 확인하세요");
    			history.go(-1);
    		</script>
    	<%
    		}
    	%>	
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=EUC-KR"
       pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
    	<%
    		request.setCharacterEncoding("euc-kr");
    		String id = request.getParameter("id");
    	%>	
    	<h2>
    		<%=id %> 님 반갑습니다.
    	</h2>
    </body>
    </html>

    3.セッションオブジェクトの練習

  • セッションを使用してデータを維持
    =>>結果

  • <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
    	<h2>세션 연습</h2>
    <%
    	String name = "kim";	
    	// 세션 : 세션을 이용하여 데이터를 유지
    	session.setAttribute("sname", name);
    	//세션 유지시간
    	session.setMaxInactiveInterval(10); //10초간 세션을 유지
    %>
    	<a href="SessionName.jsp?name=<%=name%>">세션네임 페이지로 이동</a>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=EUC-KR"
       pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
    	<h2>세션 네임 페이지 입니다.</h2>
    	<%
    		String sname = (String)session.getAttribute("sname");
    	%>	
    	<%=request.getParameter("name")%>
    	<br><br>
    	<%=sname %>님 session 값입니다.	
    </body>
    </html>

    4.Out内蔵練習


    jspスクリプトを出力する2つの方法
  • <%= %>
  • out.println(name+「この画面2に出力」);
    =>>結果

  • <%@ page language="java" contentType="text/html; charset=EUC-KR"
        pageEncoding="EUC-KR"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
    <%
    	String name = "알리미 어플";
    %>
    스크립트로 표현시 <%=name %>이 화면에 출력 <br><br>
    <%
    	out.println(name+"이 화면2에 출력");		
    %>
    </body>
    </html>