본문 바로가기

IT일반과목/JSP

20180825 집공부3 <지시어1포함>

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로 이용됨.


서블릿 만드는법
 -> JSP처럼 만든후 파일 추가할때 Servlet로 추가하기
-> package랑, Class name 해주고 finish클릭

 -> 이렇게 하면 서블릿 파일이 만들어진다.

서블릿은 기본으로 HttpServlet를 상속받는다.

URL Mappings로 해가지고 동의어비슷한 줄임말로 바꿀 수 있다.


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