N스크린하이브리드앱과정/JSP:Model-1

[4주][3일][5~8th] JSP: 액션태그로 폼만들기, 세션값 넣고 지우기.

광천스러움 2013. 8. 7. 17:42

★ 용어정리

액션태그

1. useBean : 객체 생성 및 TestBean클래스 import

  <jsp:useBean id="testBean2" class="bean.TestBean"/>

2. setProperty : 입력값을 받아옴. request.getparameter()의 역할

  property값은 입력값을 받을 위치이고, name은 인스턴스 이름을 말한다.

  <jsp:setProperty property="*" name="testBean2" />

3. getProperty :

  <jsp:getProperty property="name" name="testBean2"/>

 

세션 실습하기

1. 세션값 생성
  session.setAttribute(이름,값);

2. 세션값 가져오기
  session.getAttribute(이름);

3. 세션값 삭제
  session.removeAttribute(이름);

4. 세션값 초기화
  session.invalidate();

 

 

☆ 실습(1) : java파일을 받아와 입력받은 값을 출력하기

 - jsp파일 2개와 java파일 1개가 필요하다. "TestBean.java", "beamForm.jsp", "beanPro.jsp"

 

1. TestBean.java

 [alt + shift + s + r] 단축키를 사용해 getname과 setname을 설정해준다.

 보안을 위해 TestBean 클래스에서 멤버변수를 private로 지정해준다. 멤버변수에 직접 접근하지 않고

 get/set의 역할을 충실히 수행할 수 있다.

 

2. beamForm.jsp

이름이 있는 폼을 만들어 준다.

<form action="beanPro.jsp" method="post">
이름: <input type="text" name="name"><br>
<input type="submit" value="전송">
</form>

 

3. beanPro.jsp

<%
//한글처리
request.setCharacterEncoding("utf-8");
//name값 가져오기
String sname = request.getParameter("name");
//객체 생성 testBean
TestBean testBean = new TestBean();
//자바빈 저장
testBean.setName(sname);
//자바빈 저장된 내용 출력
out.println(testBean.getName());
%>  

 

 

* 액션태그 사용하기

1. 실습(1)에서 3번, beanPro.jsp파일에 한글처리 내용만 빼고 나머지 내용을 다 지운다.

 

2. 그 다음 아래와 같은 소스를 집어넣는다.

<jsp:useBean id="testBean2" class="bean.TestBean"/>
<jsp:setProperty property="*" name="testBean2" />
이름:<jsp:getProperty property="name" name="testBean2"/>

 

* 결과

이름 입력

 

출력값

 

 

☆ 실습(2) : 간단한 폼 만들어보기

문제

beanForm3.jsp
아이디 id 비밀번호 pass
이름: name 성별 sex(int 남1 여2)(라디오)
나이: age(int) 이메일주소: email

beanPro3.jsp
액션태그로

 

1. java파일을 만들어서 멤버변수를 설정해준다.

2. beanForm3.jsp를 설정해준다.

<h1>간단한 회원가입 폼</h1>
<form action="beanPro3.jsp" method="post">
아이디 <input type="text" name="id"><br>
비밀번호 <input type="password" name="pass"><br>
이름 <input type="text" name="name"><br>
성별 <input type="radio" name="sex" value="1">남
<input type="radio" name="sex" value="2">여<br>
나이 <input type="text" name="age"><br>
이메일주소 <input type="text" name="email"><br>
<input type="submit" value="전송">

 

3. beanPro3.jsp를 설정해준다

<%
request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="testbean" class="bean.TestBean3"/>
<jsp:setProperty property="*" name="testbean"/>
아이디: <jsp:getProperty property="id" name="testbean"/><br>
비밀번호: <jsp:getProperty property="pass" name="testbean"/><br>
이름: <jsp:getProperty property="name" name="testbean"/><br>
성별:<%
if(testbean.getSex()==1){
 out.println("남");
}else{
 out.println("여");
}
%>
나이: <jsp:getProperty property="age" name="testbean"/><br>
이메일: <jsp:getProperty property="email" name="testbean"/><br>

- 특이사항 : 성별의 경우, 폼에서 라디오 버튼으로 설정되었고, [남/여]로 나뉘어져 있으므로 액션태

                  그 대신 <% %>를 사용해서 if문을 써준다. 인스턴스 testbean을 생성해주었기 때문에,

                  testbean.getSex()로 값을 불러온다. 폼에서 value값이 남=1, 여=2 로 설정해주었기 때문

                  에 if문으로 가능해진다.

 

실행시

 

입력중

 

전송버튼 눌렀을 때 결과

 

 

☆ 실습(3) : 세션 테스트

*4개 파일이 필요

1. sessionTest.jsp

<%
 String name;
 if(session.getAttribute("name")!=null){
  name=(String)session.getAttribute("name");
  //세션값 있음
 }else{
  name="세션값 없음";//세션값 없음
 }
%>
<h1>세션 테스트</h1>
<input type="button" value="세션값저장" onclick="location.href='sessionSet.jsp'">
<input type="button" value="세션값삭제" onclick="location.href='sessionDel.jsp'">
<input type="button" value="세션값초기화" onclick="location.href='sessionInval.jsp'"><br>
세션값:<%=name %>

 

2. sessionSet.jsp

<%
//세션값 설정
//세션이름 name Session Test
session.setAttribute("name", "Session Test");
//sessionTest 이동
//response.sendRedirect(arg0);
%>
<script type="text/javascript">
alert("세션값 생성");
location.href="sessionTest.jsp";
</script>

 

3. sessionDel.jsp

<%
session.removeAttribute("name");
%>
<script type="text/javascript">
alert("세션값 삭제");
location.href="sessionTest.jsp";
</script>

 

4. sessionInval.jsp

<%
session.invalidate();
%>
<script type="text/javascript">
alert("세션값 초기화");
location.href="sessionTest.jsp";
</script>

 

세션값 저장

 

클릭시

 

세션값 삭제

 

세션값 삭제 후

 

세션값 초기화 클릭시

 

확인 클릭 후