본문 바로가기
Web/JSP/Servlet/JDBC

JSP란 / JSP 예제 / JSP example

by 나비와꽃기린 2016. 6. 22.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

외부교육 받았을때 정리한 내용을 올린다.


2. JSP

2.1 웹프로그래밍

-웹 상에서 사용자와 기업 또는 사용자들간의 연결을 가능하게 하는 프로그래밍 언어

-클라이언트(Client)/서버(Server)의 방식으로 구축

-웹프로그래밍 언어:CGI, ASP, PHP, JSP à '스크립트 언어'라고 한다.

-GET/POST 방식에 따라 URL의 출력이 다르다.

 

2.2 JSP

-동적인 웹 페이지를 만들기 위한 언어

-HTML 응답을 생성하기 보다는 바이너리 응답을 생성

-요청 흐름을 제어하는 역할을 주로함

-서블릿 Class로 변환 후 컴파일 된다.

-URL로서 클라이언트가 실행 요청한다.

-간편한 MVC 패턴 적용

-JSTL, 커스텀 태그 등을 이용한 개발 용이성

-<% ~ %> JSP의 시작 구문

-<%@~ %> JSP의 지시문

-<%= %> JSP의 출력문

 

2.3 Servlet

-java main을 가지고 있지만 servlet은 메인이 없다.

-WEB의 시작지점은 Servelet à 일종의 Controller à 일종의 메인

-웹 서버 상에서 실행되는 자바의 클래스 파일

- javax.servlet.Servlet 인터페이스를 구현해서 작성.

-입력과 출력을  HTTP 프로토콜의 요청과 응답의 형태로 다룸.

- jsp 컴파일 후 서블릿 파일위치à (Web01 프로젝트의 CurrentTime.jsp실행 )

D:\workspace\0414\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Web01\org\apache\jsp

[CurrentTime.java 클릭]

 

**실습7

CurrentTime.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR" import="java.util.*"%>

 

<!-- html4방식<!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>

 <%

        Calendar c=Calendar.getInstance();

        int hour=c.get(Calendar.HOUR_OF_DAY);

        int minute=c.get(Calendar.MINUTE);

        int second=c.get(Calendar.SECOND);

 %>

 현재 시간은 <%=hour%><%=minute%><%=second%> 입니다.

</body>

</html>

 

***실습8

***ServletTest.java

 

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Calendar;

 

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

 

@WebServlet("/Ser")

public class ServletTest extends HttpServlet { //HttpServlet 상속

             private static final long serialVersionUID = 1L; //직렬화 역직렬화를 위한 식별번호를 뜻함

 

    public ServletTest() {

    }

 

             protected void doGet(HttpServletRequest request, HttpServletResponse response)

                                        throws ServletException, IOException {

                           //응답문서 타입 설정

                           response.setContentType("text/html;charset=euc-kr");

                           //client가 자료를 요청하면 -> 그 자료를 인코딩 해야한다.

                           //요청문서 인코딩타입 설정

                          request.setCharacterEncoding("euc-kr");

                          

                          Calendar c=Calendar.getInstance();

                          int hour=c.get(Calendar.HOUR_OF_DAY);

                          int minute=c.get(Calendar.MINUTE);

                          int second=c.get(Calendar.SECOND);

                         

                          //출력 스트림 생성

                          PrintWriter out=response.getWriter(); //출력은 response

                          out.write("<h1>현재시작은");

                          out.write(Integer.toString(hour)+"");

                          out.write(Integer.toString(minute)+"");

                          out.write(Integer.toString(second)+"");

                          out.write("입니다</h1>");

             }

 

             protected void doPost(HttpServletRequest request, HttpServletResponse response)

                                        throws ServletException, IOException {

            

             }

 

}