200180825
JSP특징
- 동적 웹어플리케이션 컴포넌트.
- .jsp 확장자.
- 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용.
- jsp는 서블릿으로 변환되어 실행
- MVC패턴에서 View로 이용됨.
Web Project 만들때
Generate web.xml depl..이거 선택하고하기
WebContent 일로 들어가기
-> 오른쪽 버튼 클릭 -> jsp file클릭 -> 이름선택후 만들어진다.
다 작성하고 나서
run as -> tomcat 하고 하기
ctrl+F11 눌러서 실행하기
1. 아키텍쳐
우리가 파일을 만들면
.jsp file를 만든다. -> 그후 아키텍처가 java파일로 바꾼다.뒤에 .java를 붙인다. -> 이걸 컴파일 한다.
Servlet특징
- 동적 웹어플리케이션 컴포넌트.
- .java 확장자.
- 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용.
- java thread이용하여 동작.
- MVC패턴에서 Controller로 이용됨.
package com.javalec.ex;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloWorld
*/
@WebServlet("/HWorld")
public class HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloWorld() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
System.out.println("HelloWorld");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
web.xml에 서블릿 맴핑
-> 너무 길고, 보안에 노출되어 있는 경로를 간단하게 맵핑하는 것이다.
기존경로 : http://localhost:8081/helloworld/servlet/com.javalec.ex.HelloWorld
URL 맵핑 경로 : http://localhost:8081/helloworld/HWorld
맵핑방법 2가지가 있다.
1. 프로젝트를 만들면 web.xml이있는데 여기서 <servlet>에서 이름을 지정해주면 된다.
<servlet-name> ; 임의의 이름을 만들어 준다.
<servlet-class> : 매핑할 클래스 파일명을 패키지명을 포함하여 정확하게 입력한다.
<url-pettern> : servlet-class의 클래스를 매핑할 임의의 이름을 입력한다. 주의할점은 '/'로 시작해야 한다.
--------------------------------------------------------------------------------------------------------------------------------
이렇게 들어가져 있는데
여기서
이렇게 써주면 끝!!!! -> 이게 첫번째 방법이다.
2번쨰 방식
어노테이션을 이용한 서블릿 맵핑
@WebServlet('Hworld") : 맵핑명(HWorld)을 java소스에 직접 입력한다.
소스분석
<!-- 1. html 주석 -->
<%-- 안에있는내용주석 --%>
● page 지시어 : 모든 jsp파일에 기술되어야 하는 요소로 현재 jsp문서와 관련된 처리 정보를 기술함
ex)
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
● HTML 선언부 및 기본 태그
ex)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
Hello World~~
</body>
</html>
● JSP 표현식 : 자바 코드를 이용해 간단한 출력을 위해 사용. 여기서는 현재 날짜와 시간 정보가 출력됨
ex)
현재 날짜와 시간은 : <%=new java.util.Date() %>
JSP 페이지의 구성 요소
◈ 디렉티브(Directive)
◈ 스크립트 : 스크립트릿(Scriptlet), 표현식(Expression), 선언부(Declaration)
◈ 표현 언어(Expression Language)
◈ 기본 객체(Implicit Object)
◈ 정적인 데이터
◈ 표준 액션 태그(Action Tag)
◈ 커스텀 태그(Custom Tag)와 표준 태그 라이브러리(JSTL)
주석
-> JSP는 특성상 자바, HTML, JSP 코드가 섞여 있으므로 주석도 혼용해서 사용한다.
HTML 주석 : 클라이언트로 전달되는 주석
-> 화면에는 보이지 않지만 브라우저 소스보기를 하면 내용이 노출됨
ex) <!-- 주석입니다. -->
JSP 주석 : 클라이언트로 전달되지 않는 주석
-> 브라우저 소스보기를 해도 내용이 노출되지 않음
ex) <%-- 주석 --%>
지시어(Directives)
-> JSP 파일의 속성을 기술하는 JSP 문법
-> JSP 컨테이너에게 해당 페이지를 어떻게 처리해야 하는지 전달하기 위한 내용을 담고 있다.
-> 지시어는 크게 page, include, taglib으로 나눌 수 있으며, 각각에서 다루는 속성이 다르다.
----------------------------------------------------------------------------------------------------------------
page 지시어
-> page 지시어는 현재 JSP 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분
-> 보통 JSP 페이지 맨 앞에 위치함.
ex) <%@ page 속성1="속성값1" 속성2="속성값2" ...%>
-> 여러 줄에 나누어 작성할 수도 있음.
ex) <%@ page contentType="text/html;charset=UTF-8"
import="javax.sql.*,java.util.*" errorPage="error.jsp"%>
<%@ page import="java.util.*"%>
속성 |
설명 |
기본 설정 값 |
language |
스크립트 언어의 유형을 정한다. |
java |
import |
JSP 내에서 사용할 외부 자바 패키지나 클래스의 불러오기(import)를 정한다 |
- |
session |
세션의 사용 유무를 정한다. |
true |
buffer |
버퍼의 크기를 정한다. |
8KB |
autoFlush |
버퍼의 내용을 자동으로 비운다. |
true |
isThreadSafe |
단일 스레드 모델을 사용함으로써 동시성 제어 여부를 정한다. |
true |
info |
JSP 페이지에 대한 설명이다. |
- |
errorPage |
현재 페이지에서 오류가 발생할 경우 호출될 페이지를 지정한다. |
- |
isErrorPage |
오류만을 처리하는 페이지로 지정한다. |
false |
contentType | MIME 형식 지정 및 캐릭터셋을 설정한다. | text/html;charset=ISO-8859-1 |
pageEncoding | contentType과 동일한 기능을 한다. | ISO-8859-1 |
----------------------------------------------------------------------------------------------------------------
import
-> JSP 스크립트 부분에서 자바 클래스를 사용하는 경우 해당 클래스의 패키지에 대한 import 설정으로 기본적으로 자바에서와 동일하다.
-> 패키지 import 구분을 ","을 이용하거나 라인 단위로 작성해야 한다.
ex)
<%@ page import="java.sql.*,java.util.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@ page import="java.sql.*,java.util.*"%>
'IT일반과목 > JSP' 카테고리의 다른 글
20180826 집공부6 <액션,객체,리다이렉트> (0) | 2018.08.26 |
---|---|
20180826 집공부5 <지시어2> (0) | 2018.08.26 |
20180825 집공부4 (0) | 2018.08.25 |
20180824 집공부2 - 설치환경 구성하기 (0) | 2018.08.24 |
20180824 집공부1 (0) | 2018.08.24 |