'Scriptlet'에 해당되는 글 1건

  1. 2009.09.02 스터디 09/05(JSP&Servlet 내장객체, scope, jsp예외) by 대절님

//Declaration tag(선언문)

<%!

    String name = "강대철";

    public String getName(){ return name; }

%>

멤버변수나 메소드 선언에 사용, 서블릿 변환시 서블릿의 멤번로 선언됨.

 

//Scriptlet tag

<%

    String age = request.getParameter("18");

%>

서블릿으로 변환될때 service()안에 선언됨. 로컬변수

 

//Expression tag(표현식)

브라우저에 데이터 출력시 사용, ;이 없어야 된다.  <%=age%>  ==> out.print(age);

 

//내장객체(내장변수)

정의 : jsp가 서블릿으로 변환될때 자동으로 삽입시켜주는 변수를 의미, 선언X

 

내장 객체(내장변수)

내장객체

서블릿

request

HttpServletRequest

response

HttpServletResponse

out

javax.servlet.jsp.JspWriter

session

HttpSession

application

ServletContext

pageContext

javax.servlet.jsp.PageContext

 

page

Object

config

ServletConfig

exception

Exception

 

-scope

내장객체

서블릿

scope

page

this

한번의 요청에 대해 하나의 jsp페이지 호출

request

HttpServletRequest

한번의 요청에 대해 같은 요청을 공유하는 페이지가 대응

session

HttpSession

동일 브라우저 내에서의 요청은 모두 공유

application

ServletContext

하나의 웹 어플리케이션 안에서의 요청을 모두 공유

 

예제) session

*go1.jsp

<%

  session.setAttribute('name','강대철');

%>

<a href=go2.jsp>go</a>

 

*go2.jsp

<%

  String name = (String)session.getAttribute('name');

%>

<a href=go3.jsp>go</a>

 

*go3.jsp

<%

  String name = (String)session.getAttribute('name');

%>

<%=name%>

 

예제) application

<web-app>

 <context-param>

  <param-name>driver</param-name>

  <param-value>oracle.jdbc.driver.OracleDriver</param-value>

 </context-param>

 <context-param>

  <param-name>url</param-name>

  <param-value>jdbc:oracle:thin:@localhost:1521:oracle</param-value>

 </context-param>

</web-app>

 

*go.jsp

<%

  String driver = application.getInitParameter('driver');

  String url = application.getInitParameter('url');

  String mesg = driver+url;

  application.setAttribute('context',mesg);

%>

<a href=go2.jsp>go</a>

 

*go2.jsp

<%

  String mesg = (String)application.getAttribute('context');

%>

<%= mesg %>

 

a)application 3개의 다른 브라우저를 열어서 확인하더라도 데이터 출력하는것을 알수있음

 

예제) request

<form method='post' action='param.jsp'>

 <input type=text name=name>

 <input type=text name=age>

 <input type=submit>

</form>

 

*param.jsp

<%

  request.setChracterEncoding('euc-kr');

  String name=request.getParameter('name');

  String age=request.getParameter('age');

%>

name : <%=name%>

age : <%=age%>

 

예제) out

<%

  out.print('이것은 out 입니다');

%>

 

//JSP예외처리

정의 : jsp페이지 실행중 예외가 발생하였을경우 다른 jsp페이지를 이용하여 예외처리를 할수있음.

방법 :

-예외처리 담당 jsp 작성

 <%@page isErrorPage='true' %>           

-예외 발생시 예외처리 담당 jsp지정

 <%@page errorPage='sumError.jsp' %>

 

예외 발생시 sumError.jsp 로 이동하여 그곳의 내용을 출력

 

예제) errorPage

숫자 입력시 합계 문자입력시 errorPage이동

*1

<form action='sum.jsp'>

 <input type='text' name='max'>

 <input type='submit'>

</form>

 

*2

<%@ page errorPage = 'sumError.jsp' %>

<%

 int max = Integer.parseInt(request.getParameter('max'));

 int sum = 0;

 for(int i = 1; i<=max; i++){

  sum = sum+i;

 }

%>

합계는 <%=sum%>

 

*sumError.jsp

<%@ page isErrorPage='true'%>

<html>

<body>

 <%=exception.toString() %>

 <%=exception.getMessage() %>

 <%exception.printStackTrace(); %>

</body>

</html>

 

//JSP welcome파일 지정

웹어플리케이션의 첫화면에 해당하는 홈페이지를 임의의 jsp로 지정

http://localhost:8090/    ->>>    http://localhost:8090/index.jsp

 

<web-app>

 <welcome-file-list>

   <welcome-file>index.html</welcome-file>

   <welcome-file>index.htm</welcome-file>

   <welcome-file>index.jsp</welcome-file>

 </welcome-file-list>

</web-app>

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by 대절님

댓글을 달아 주세요



티스토리 툴바