Skip to main content

5 posts tagged with "JSP"

View All Tags

· One min read
  1. 예외 페이지의 필요성
  • JSP, Servlet에서 예외 발생
  • 예외 상황에서 웹컨테이너(톰캣)에서 제공되는 기본적인 에외 페이지 보여줌
  • 사용자 예외 페이지로 설정가능
  1. page지시자를 이용한 예외 처리
 <%@ page errorPage="errorPage.jsp"%>
<%
int i = 40/0;
%>
  • errorPage.jsp
 <%@ page isErrorPage="true"%> -> true 값이어만 exceptio 관련 메소드 사용가능
<% response.setStatus(200); %>
<%= exception.getMessage() %>
  1. web.xml파일을 이용한 예외 처리
 <error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>

· One min read
  1. 액션태그란
  • JSP 페이지 내에서 어떤 동작을 하도록 지시하는 태그
  • 페이지 이동, 페이지 include 등
  • Bean 관련된 태그도 있음
  1. forward, include, param 태그
  • forward
    • 현재의 페이지에서 다른 특정페이지로 전환할 때 사용
    <jsp:forward page="sub.jsp"/>
  • include
    • 현재 페이지에 다른 페이지를 삽입할 때 사용
     <jsp:include page="include02.jsp" flush="true">
  • param
    • forward 및 include 태그에 데이터 전달을 목적으로 사용되는 태그
    • 이름과 값으로 이루어져 있다.
    <jsp:forward page="forward_param.jsp>
    <jsp:param name="id" value="abcdef"/>
    <jsp:param name="pw" value="1234"/>
    </jsp:forward>
    • in forward_param.jsp

· 3 min read
  1. request 객체의 이해
  • 웹브라우저를 통해 서버에 어떤 정보를 요청하는 것을 request라고 한다.
  • 이러한 요청 정보는 requet 객체가 관리 한다.
  • Request객체 관련 메소드
    • getContextPath(): 웹어플리케이션의 컨텍스트 패스를 얻는다
    • getMethod(): get방식과 post방식을 구분할 수 있다.
    • getSession(): 세션 객체를 얻는다
    • getProtocol(): 해당 프로토콜을 얻는다
    • getRequestURL(): 요청 URL을 얻는다
    • getRequestURI() : 요청 URI를 얻는다 -> domain 주소 제외한 나머지 값
    • getQueryString() : 쿼리 스트링을 얻는다.
  • requestobj.jsp
  <%
out.println("서버 : " + request.getServerName() + "<br/>");
out.println("포트 번호 : " + request.getServerPort() + "<br/>");
out.println("요청 방식 : " + request.getMethod() + "<br/>");
out.println("프로토콜 : " + request.getProtocol() + "<br/>");
out.println("URL : " + request.getRequestURL() + "<br/>");
out.println("URI : " + request.getRequestURI() + "<br/>");
%>
  • Parameter 메소드

    • 요청관련 메소드 보다 실제 ㅁ낳이 쓰이는 메소드는 parameter와 관련된 메소드들 이다.
    • JSP 페이지를 제작하는 목적이 데이터 값을 전송하기 위해서 이므로, parameter 관련 메소드는 중요하다.
    • getParameter(String name): name에 해당하는 파라미터 값을 구함
    • getParameterNames(): 모든 파라미터 이름을 구함
    • getParameterValues(String name): name에 해당하는 파라미터값들을 구함.
    <%!
    String name, id, pw, major, protocol;
    String[] hobbys;
    %>

    <%
    request.setCharacterEncoding("EUC-KR");

    name = request.getParameter("name");
    id = request.getParameter("id");
    pw = request.getParameter("password");
    major = request.getParameter("major");
    protocol = request.getParameter("protocol");

    hobbys = request.getParameterValues("hobby");

    %>

    이름 : <%= name %> <br/>
    아이디 : <%= id %> <br/>
    패스워드 : <%= pw %> <br/>
    전공 : <%= major %> <br/>
    프로토콜 : <%= protocol %> <br/>
    취미 : <%= Arrays.toString(hobbys) %> <br/>
  1. response 객체의 이해
  • 웹브라우저의 요청에 응답하는것을 response라고 하며, 이러한 응답의 정보를 가지고 있는 객체를 response 객체라고 한다.

  • response 관련 메소드

    • getCharacterEncoding(): 응답할때 문자의 인코딩 형태를 구한다
    • addCookie(Cooke): 쿠키를 지정
    • sendRedirect(URL): 지정한 URL로 이동합니다.

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ page import="java.util.Arrays" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
</head>
<body>
<%!
int age;
%>

<%
String str = request.getParameter("age");
age = Integer.parseInt(str);

if(age >= 20){
response.sendRedirect("pass.jsp?age=" + age);
}else{
response.sendRedirect("ng.jsp?age=" + age);
}

%>

<%= age %>
</body>
</html>

· 2 min read

1.JSP 태그의 개념 이해

  • Servlet은 JAVA언어를 이용하여 문서를 작성하고, 출력객체를 이용하여 HTML코드를 삽입하였습니다
  • JSP는 Servlet과 반대로 HTML코드에 JAVA언어를 삽입하여 동적 문서를 만들 수 있습니다
  • HTML코드안에 JAVA코드를 삽인하기 위해서는 태그를 이용해야 한다
  • JSP 태그 종류 - 지시자 <%@ %> 페이지 속성 - 주석 <%-- --> - 선언 <%! %> 변수, 메소드 선언 - 표현식 <%= %> 결과값 출력 - 스크립트릿 <% %> JAVA 코드 - 액션태그
<jsp:action> </jsp:action>

자바빈 연결

2.JSP 동작 원리

  • 클라이언트가 웹브라우저로 helloWorld.jsp 요청하게 되면 JSP컨테이너가 JSP파일을 Servlet파일(.java)로 변환

  • Servlet파일(.java)은 컴파일 된 후에 클래스 파일(.class)로 변환되고, 요청한 클라이언트에게 html파일 형태로 전달

  • helloWorld.js -> helloWorld_jsp.java -> helloWorld_jsp.class -> html

    3.JSP 내부 객체

  • 개발자가 객체를 생성하지 않고 바로 사용할 수 있는 객체가 내부객체

  • JSP에서 제공되는 내부객체는 JSP컨테이너에 의해 Servlet으로 변화될 때 자동으로 객체가 생성

  • 내부 객체 종류

    • 입출력: request, response, out
    • 서블릿: page, config
    • 세션: session
    • 예외: exception

· 3 min read

JSP Servlet

Ch1. 웹 프로그래밍

  • 인터넷이란: 1개 이상의 네트워크가 연결되어 있는 형태
  • http(Hyper Text Transfer Protocol)
  • 웹 프로그램의 동작
  • 클라이언트 → 웹서버 → 웹어플리케이션서버(WAS) → 데이터베이스

Ch2. 설치

  • Apache Tomcat 7.0
  • Eclipse 설치 → 인텔리J 무료판은 구성하는 방법 모르겠음 tomcat쪽이 안나옴.

Ch3. JSP

  • JSP 특징:

    • 동적 웹어플리케이션 컴포넌트
    • .jsp 확장자
    • 클라이너트 요청에 동적으로 작동하고, 응답은 html을 이용
    • jsp는 서블릿으로 변환되어 실행
    • MVC 패턴에서 View로 이용됨
    • JSP(View), Servlet(Controller), DB(Model)
  • 아키텍처

    • .jsp file(Java 파일로 변환) → Java file(helloworld_jsp.java)(컴파일) → class file(helloworld_jsp.class)
  • jsp 파일을 가져다가 html로 만듬.

Ch4. Servlet

  • 특징

    • 동적 웹 어플리케이션 컴포넌트
    • .java 파일
    • 클라이언트에 요청에 동적으로 작동, 응답은 html 이용
    • java thread 이용 하여 동작
    • MVC패턴에서 Controller로 이용됨
  • servlet 은 HttpServlet 상속 받음

  • doGet, doPost 메소드 사용

  • localhost:8181/servlet/com.javalec.ex.HW 하면 보안상 문제 or 편의상 좋지 않아서 web.xml 에서 맵핑 하거나, 어노테이션으로 맵핑

Ch.5 Servlet

 Servlet(interface) → GenericServlet(abstract) → HttpServlet
doGet(HttpServletRequest request, HttpServletResponse response)
response.setContentType(“text/html”);
PrintWriter writer = response.getWriter(); ← 웹브라우저 출력하기 위한 스트림
write.println(“<html>”);
  • request 객체에 정보가 담겨 웹서버로 전달, 받은 데이터를 확인하여 대응 되는 서비스 response 객체에 담아서 전달
  • 요청방식
    • get: URL값으로 정보가 전송되어 보안에 약함 → doGet()함수가 처리
    • post: header를 이용해 정보가 전송되어 보안에 강함 → doPost() 함수가 처리
  • doGet(): html내 form태그의 method 속성이 get일 경우 호출, 웹브라우저의 주소창을 이용하여 servlet을 요청한 경우에 호출
  • doPost(): form태그 속성이 post일 경우 호출
  • 컨텍스트 패스(Context Path): WAS(Web Application Server)에서 웹어플리케ㅣ션을 구분하기 위한 path, 이클립스에서 프로젝트 생성하면 자동으로 server.xml에 추가 된다.