JSP 튜 토리 얼 은 자바 빈 을 사용 하여 업무 논 리 를 완성 하 는 방법 입 니 다.

9631 단어 JSPJavaBean
본 고 는 JSP 튜 토리 얼 에서 자바 빈 을 사용 하여 업무 논 리 를 완성 하 는 방법 을 실례 로 서술 하 였 다.모두 에 게 참고 하도록 공유 하 다.구체 적 으로 다음 과 같다.
1.목표:
① 자바 빈 이 무엇 인지 파악 하기;
② JavaBean 을 어떻게 만 드 는 지 파악 하기;
③ JSP 에서 자바 빈 을 방문 하 는 방법 파악 하기;
④ JSP 에서 대상 의 4 가지 역할 범 위 를 이해한다.
2.주요 내용:
지난 강 의 를 통 해 loginprocess.jsp 의 검증 과정 을 패키지 하여 자바 빈 을 만 든 다음 JSP 페이지 에서 이 자바 빈 을 호출 하여 자바 빈 의 작성 과 접근 을 소개 합 니 다.
자바 빈 대상 의 4 가지 역할 범 위 를 간단 한 사례 를 통 해 소개 합 니 다.
1,무엇이 자바 빈
자바 빈 은 자바 언어 로 작 성 된 구성 요소 입 니 다.구성 요 소 는 하나의 큰 시스템 을 구성 하 는 일부분 으로 일반적으로 서로 다른 독립 적 으로 운행 한다.구성 요 소 는 특정한 기능 을 완성 할 수 있 으 며,이러한 기능 은 주로 공유 된다.
자바 빈 은 특수 한 자바 류 이다.특수:보통 매개 변수 가 없 는 구조 방법 을 제공 해 야 합 니 다.외부 에 서 는 그의 구체 적 인 실현 을 알 필요 가 없다.보통 속성 은 사유 이 고 공유 적 으로 속성 을 조작 하 는 방법 을 제공 해 야 한다.업무 방법 이 좀 있 을 거 야.
2.예:사용자 정보 검증

package javabean;
public class User
{
  private String username;
  private String userpass;
  public String getUsername()
  {
   return username;
  }
  public void setUsername(String username)
  {
   this.username = username;
  }
  public String getUserpass()
  {
   return userpass;
  }
  public void setUserpass(String userpass)
  {
   this.userpass = userpass;
  }
  public boolean check()
  {
   if(username==null || userpass==null)
     return false;
   if(username.equals("zhangsan") && userpass.equals("lisi"))
   {
     return true;
   }else{
     return false;
   }
  }
}
3.JSP 에서 자바 빈 을 어떻게 호출 합 니까?
우선,자바 에서 의 호출 상황:

import javabean;
…
  User user = new User(); //     ,     
  user.setUsername("zaaaa"); //           
  user.setUserpass("sssss");  //           
  boolean b = user.check();  //           

1)창설 대상
역할:자바 빈 의 대상 을 예화 하거나 자바 빈 의 대상 을 찾 습 니 다.
id 속성 은 생 성 된 대상 의 이름 을 표시 합 니 다.class 는 자바 빈 의 전체 클래스 입 니 다.scope 속성 은 생 성 된 변수의 역할 범 위 를 지적 합 니 다.
scope 의 역할 범 위 는 4 개 입 니 다:page request session application
page 는 현재 페이지 를 표시 합 니 다.실제 JSP 파일 에 대응 하 는 자바 류 의 대상 입 니 다.
request 는 우리 가 보 낸 요청 부터 시스템 이 우리 에 게 응답 하 는 것 까지 요청 을 표시 합 니 다.이것 은 바로 요청 입 니 다.한 번 의 요청 이 하나의 JSP 페이지 에 만 적용 된다 면 page 와 request 의 효 과 는 같 습 니 다.
예 를 들 어 로그 인 기능 은 첫 번 째 페이지 를 표시 할 때 page 와 request 의 역할 범 위 는 같 습 니 다.제출 후 로그 인 에 성공 하면 두 개의 파일 loginprocess.jsp 와 success.jsp 는 파일 마다 하나의 page 에 대응 하지만 두 파일 은 하나의 request 에 속 합 니 다.
session웹 애플 리 케 이 션 의 모든 클 라 이언 트 에 게 하나의 대상 에 대응 합 니 다.이 대상 은 session 입 니 다.자바 빈 대상 의 역할 범 위 를 session 으로 설정 하면 자바 빈 대상 을 session 대상 에 저장 하고 클 라 이언 트 의 전체 방문 과정 에서 이 대상 을 방문 할 수 있 습 니 다.
응용 프로그램자바 빈 대상 의 역할 범 위 를 application 으로 설정 하면 이 응용 프로그램의 모든 사용자 가 모든 인터페이스 에서 이 대상 을 방문 할 수 있 습 니 다.
예:
테스트(4 개 역할 범위 에 대하 여):
page.jsp 파일 을 작성 하 는 것 은 다음 과 같 습 니 다.

<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="pageAttribute" value="pppp" scope="page"/>
<c:set var="requestAttribute" value="rrrrr" scope="request"/>
<c:set var="sessionAttribute" value="ssss" scope="session"/>
<c:set var="applicationAttribute" value="aaaa" scope="application"/>
<jsp:include page="success.jsp"/>

page.jsp 에서 출력 정보:

${pageScope.pageAttribute}
${requestScope.requestAttribute}
${sessionScope.sessionAttribute}
${applicationScope.applicationAttribute}
그 중에서라벨 은 정 보 를 저장 하 는 데 사 용 됩 니 다.var 는 변수의 이름 을 가리 키 고 value 는 변수의 값 을 가리 키 며 scope 는 변수의 저장 범 위 를 가리 킵 니 다.
${pageScope.pageAttribute}은 page 범위 내의 pageAttribute 속성 에 접근 하고${requestScope.requestAttribute}은 request 범위 내의 requestScope 속성 에 접근 하여 순서대로 유추 합 니 다.
 
request.jsp 파일 을 작성 하 는 것 은 다음 과 같 습 니 다.

<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
request.jsp 에서 출력 정보:

${pageScope.pageAttribute}
${requestScope.requestAttribute}
${sessionScope.sessionAttribute}
${applicationScope.applicationAttribute}
<br>
<a href="session.jsp">  session</a>
session.jsp 파일 을 작성 하 는 것 은 다음 과 같 습 니 다.

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

session.jsp 에서 출력 정보:

${pageScope.pageAttribute}
${requestScope.requestAttribute}
${sessionScope.sessionAttribute}
${applicationScope.applicationAttribute}
application.jsp 파일 을 작성 하 는 것 은 다음 과 같 습 니 다.

<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
application.jsp 에서 출력 정보:

${pageScope.pageAttribute}
${requestScope.requestAttribute}
${sessionScope.sessionAttribute}
${applicationScope.applicationAttribute}
실행 과정:
page.jsp 를 실행 하면 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
request.jsp 에서 출력 정보:rrrr ssss aaaa
page.jsp 에서 출력 정보:pppp rrrrr ssss aaaa
분석:page.jsp 와 request.jsp 는 같은 요청 에 속 하기 때문에 request 대상,session 대상 과 application 대상 을 공유 하지만 page 에 저 장 된 정 보 를 표시 할 수 없습니다.
"세 션 방문"을 누 르 면 session.jsp 를 진행 합 니 다.
session.jsp 에서 출력 정보:ssss aaaa
분석:이전 과 같은 요청 에 속 하지 않 기 때문에 request 와 page 정 보 를 방문 할 수 없고 session 과 application 만 방문 할 수 있 습 니 다.
브 라 우 저 를 다시 열 고 application.jsp 에 접근 합 니 다.
application.jsp 에서 출력 정보:aaaa
분석:서로 다른 클 라 이언 트 에 속 하기 때문에 애플 리 케 이 션 대상 만 공유 할 수 있 고 애플 리 케 이 션 의 정보 만 볼 수 있 습 니 다.
2)속성 할당

name 은 자바 빈 대상 의 이름 을 가리 키 고 property 는 속성의 이름 을 가리 키 며 value 가 부여 할 값 을 가리킨다.
예:
value 속성 이 지정 되 지 않 으 면 요청 대상 에서 username 이라는 폼 요 소 를 찾 습 니 다.다음 코드 에 해당 합 니 다:

String username = request.getParameter("username");
user.setUsername(username);

value 속성 을 생략 하고 property 속성 을"*"로 설정 하면 다음 과 같 습 니 다.

String username = request.getParameter("username");
user.setUsername(username);
String userpass = request.getParameter("usernpass");
user.setUsernpass (userpass);

폼 요소 의 이름 이 자바 빈 속성 이름과 일치 하지 않 을 경우,param 속성 을 통 해 어떤 폼 요 소 를 사용 할 지 지정 할 수 있 습 니 다.
3)자바 코드 호출 방법 삽입

<%
  boolean b = user.check();
%>

4)자바 빈 속성 가 져 오기
4.실례:login 수정process.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!--    -->
<jsp:useBean id="user" class="javabean.User" scope="request"/>
<!--        -->
<jsp:setProperty name="user" property="*"/>
<!--         -->
<%
  boolean b = user.check();
  request.setAttribute("b",new Boolean(b));
  //  request     ,        ,         
%>
<!--          -->
<c:if test="${b}">
  <jsp:include page="success.jsp"/>
</c:if>
<c:if test="${!b}">
  <jsp:include page="failure.jsp"/>
</c:if>
<br>    :
<jsp:getProperty name="user" property="username"/>
<jsp:getProperty name="user" property="userpass"/>

실행:컴 파일 하기 전에 작 성 된 자바 파일 User.java.그리고 컴 파일 된 파일 을 프로젝트 의 WEB-INF 디 렉 터 리 의 classes 하위 디 렉 터 리 에 넣 습 니 다.
운행 후 효 과 는 같다.
그러나 위의 코드 를 분석 한 결과 자바 코드 가 들 어 있 는 것 을 발 견 했 습 니 다.이것 은 JSP 가 자바 빈 에 대한 접근 을 잘 제공 하지 않 았 기 때 문 입 니 다.탭 을 사용 하여 업무 방법 을 호출 하려 면 사용자 정의 탭 을 만들어 야 합 니 다.귀 찮 습 니 다.다음은 절충 하 는 방법 을 소개 한다.
5.실례:login 재 구성process.jsp
User.java 에 다음 과 같은 방법 을 추가 합 니 다.

public boolean getResult()
{
   return check();
}

JSP 는 접근 업무 방법의 탭 을 제공 하지 않 았 지만 속성 에 접근 하 는 방식 을 제공 하기 때문에 이 방법 은 result 속성 을 제공 하여 check 업무 방법 을 간접 적 으로 호출 합 니 다.
수정 loginprocess.jsp 파일 은 다음 과 같 습 니 다.

<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="user" class="javabean.User" scope="request"/>
<jsp:setProperty name="user" property="*"/>
<c:if test="${user.result}">
  <jsp:include page="success.jsp"/>
</c:if>
<c:if test="${!user.result}">
  <jsp:include page="failure.jsp"/>
</c:if>

본 논문 에서 말 한 것 이 여러분 의 JSP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기