본문 바로가기

Java/JSP

6.30 JSP 진짜 시작 / path , 절대경로, 디렉티브 태그 / 4대 영역 객체 - 속성객체

  • 프로젝트 내에서 webapp이 루트 경로이다.
  • 현업에서는 버전에 따라 webapp폴더가 아닌 경우도 있으니 주의.

서버에 여러가지 프로젝트를 add하게 되면

 

server.xml에 context에 등록이 됨.

 

<Context docBase="08_session_application" path="/08_session_application" reloadable="true" source="org.eclipse.jst.jee.server:08_session_application"/></Host>

여기서 path="/08_session_application" = 각 프로젝트에 접근하기 위한 path. 얼마든지 수정 가능. 중복이 되면 안됨.

 

path 수정하려면 서버 중지하고 변경.

  • 서버 더블클릭하고 Modules에서 쉽게 수정이 가능하다.
  • path 수정 시 경로 앞에 / 넣기
  • path = "/" 인 경우 ROOT 프로젝트로 설정되어 프로젝트경로입력없이 진입했을때 처음 나오는 프로젝트가 됨.

서버 구동 후 tomcat 파일 탐색기로 들어가면 

webapps => 정적 파일(html, css, image ...)

work => 동적파일 (jsp,servlet, VO 등 ...)

이 저장된다.


<form 태그 >

GET, POST

GET = > 검색에 사용

POST => 정보 변경작업에 사용 (검증된 data)

 

 

  • enctype - 전송되는 데이터의 인코딩 설정
  • (get 방식은 전송시 기본적으로 encoding이 되어벌임....!)

    application/x-www-form-urlencoded
    - 기본값 : 전송되는 모든 문자들은 서버로 보내기 전에 인코딩 됨을 명시
    %16진법의 두자리 수 - 하나당 1byte - 한글은 3byte로 조합
    %EA%B9%80%EC%84%9C%EC%98%81 - 김서영

    multipart/form-data
    전달되는 데이터가 이진 데이터 이므로 모든 문자를 인코딩 하지 않음을 명시
    이 방식은 문자가 아닌 데이터(파일,이미지)등을 서버에 전송할 때 사용

    text/plain
    일반 문자 - 공백은 + 기호로 변환하지만
    나머지 문자는 인코딩 되지 않음을 명시

 

 

ex)

 

<form action="joinCheck.jsp" method="POST">


 

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ include file="common/header.jsp" %>

<h1>MAIN PAGE</h1>

<p>

<!-- lorem*5 ctrl+e -->

<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tenetur porro qui neque saepe ratione officia provident itaque deserunt perspiciatis iste. Repellat quod quis porro laboriosam debitis est perspiciatis non harum?</div>

<div>Repellat atque fugiat eveniet doloremque culpa est consequuntur et. Voluptatum dolores earum accusamus iure ut placeat similique dolor laboriosam sint ullam illum temporibus expedita perferendis maiores repellendus eveniet optio asperiores!</div>

<div>Nobis ad iste accusantium nostrum hic eveniet rem nemo eius maiores esse exercitationem at dolorum doloribus laboriosam odio eum consequuntur earum atque pariatur totam. Facilis voluptates dolorum eveniet ratione et.</div>

<div>Iste saepe recusandae non hic dolores autem obcaecati architecto quibusdam porro suscipit sunt beatae temporibus debitis consectetur quos ex deserunt quam sapiente aliquam perspiciatis. Minus ea modi eaque deleniti! Distinctio!</div>

<div>Inventore fugiat non culpa numquam voluptatum soluta corrupti ex vel quas eveniet. Quo modi eius qui blanditiis dolorum nihil sapiente reprehenderit reiciendis sint fugiat debitis ullam officia delectus quaerat rem?</div>

<p>

<%@ include file="common/tail.jsp" %>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<footer>

<hr/>

Copyright &copy; Choi 1982. All rights reserved.

<address>부산 수영구 광안동 xxx</address>

</footer>

</body>

</html>


<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%!

// 선언문 - class block 영역

// 선언된 변수는 field, method 선언도 가능

String contextPath;

%>

<% // 스클립틀릿은 실제로 service 메소드를 통해 실행됨. 내장객체사용가능.

contextPath = request.getContextPath();

%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Scope Project</title>

</head>

<body>

<header>

<a href="<%=contextPath%>">MAIN PAGE</a> | // %= : 표현문. 연산된 결과를 이용할 수 있다.

<a href="#">Log Out</a> |

<a href="join.jsp">JOIN PAGE</a> |

<a href="#">LOGIN PAGE</a>

<hr/>

</header>

 

상대 경로 작성 시 url 요청경로에서 찾아 들어가는 것임. (파일 기준이 아님 주의!)

 

<a href="<%=contextPath %>/join.jsp">JOIN PAGE</a> |

이렇게 절대경로로 사용하는게 더 쉽다! (webapp기준)

 


jsp 스크립트 태그 참고자료.

 

 

디렉티브 태그를 이용하여 시멘틱 태그를 연결한다. (공통 header, footer 작성.)

 


<!-- 4대 영역 객체 - 속성객체 
pageContext - 하나의 jsp page 정보  (하나의 서블릿클래스가 요청을 받아들일때마다 생성)
request - 하나의 요청 응답 완료
session - 한 사용자의 브라우저 사용 완료
application - 서버 사용 완료


-->