본문 바로가기

JSP/기본다지기

JSP 2일차 필기 (JSP 들어가기)

Server 


Client


IP+Port

◀◀요청 index.html 페이지

Browser 

요청 방식 

www.AAA.com

◀◀Request객체

(Client가 요청한 모든 정보 포함)

www.AAA.com/index.html

(url요청)

Get방식(doGet())

WebContent

 

@Action Tag(액션 태그 클릭)

index.html

응답▶▶

양식제출(id/pw)

Post방식(doPost())

요청받은 정보로 DB조회 등 정보를 처리함 

Response객체▶▶

(요청받은 정보 처리한 후 HTML문서를 만들어 보내준다)

브라우저에 HTML문서가 표시됨

 


Get방식

url 뒤에 ?+parameter를 붙이는 방식.

예를들어 tistory.com/entry/?id=5777


Post방식

양식을 만들어 제출하는 형식

url에 나타나지 않고 Header에 나타남.


새로운 프로젝트 L02HelloJsp 생성 후, WebConetnt에 index.jsp 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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>
<h1>Java Servlet Page jsp</h1>
<hr>
<h3>자바 서블릿 페이지 jsp는 WebContent에 등록되는 서블릿이다.</h3>
<h3>web.xml에 등록하지 않아도 url이 index.jsp로 검색된다.</h3>
<h3>SErvlet은 主가 JAVA이지만 jsp는 主가 HTML이다</h3>
<h3>jsp페이지에서 java를 사용하려면 스크립트를 사용해야한다.</h3>
<!--
제목 태그 h를 사용하는 이유
검색엔진에서 검색 결과로 제목태그의 내용을 출력한다.
or 검색엔진에서 제목태그를 검색한다. 
 -->
<%
//스크립트릿[코드작성(변수선언, for, while, if 등..)]
//자바 영역 -> doGet(request, response) 내부이다.
//메소드 내부기 때문에 메소드를 만들 수 없다.
//public void a(){};
//매개변수 HttpServletRequest request와 HttpServletResponse response는 눈에 보이지는 않지만 사용가능
//PrintWriter out = response.getWriter(); 생략되어 있다.
out.print("<hr><h1>스크립트에서 화면으로 출력함</h1>");
%>
<%!
//선언문
//class 영역 -> 메소드와 전역변수(필드)를 만들 수 있다.
public void a(){};
%>
<!-- a태그(액션태그)는 link를 걸 때 사용
검색엔진에서 클라이언트가 액션태그를 많이 누른 액션태그의 url을 우선순위로 띄운다. 
-->
<h2>
    <a href="./L01Calendar.jsp?sdf=yyyy年MM月dd日hh時mm分ss秒">[오늘의 시간]</a>
</h2>
</body>
</html>
cs


JSP(Java Servlet Page)는 WebContent에 등록되는 서블릿이다.


따로 web.xml에 등록하지 않아도 url이 index.jsp로 검색된다.


servlet은 JAVA가 주가 되지만, JSP는 HTML이 주가 된다.


JSP에서 JAVA를 사용하기 위해서는 스크립트를 사용해야 한다.


스크립트 요소


(1) 선언문

<%!

자바에서의 class와 같은 영역이다.

메소드와 전역변수(필드)를 생성할 수 있다.

%>


(2) 스크립트릿

<%

자바 영역.

doGet(request, response) 내부이다.

자바 코드를 작성할 수 있다.(변수 선언, for, while, if 등....)

메소드 내부이기 때문에 메소드를 만들 수 없다.

매개변수 HttpServletRequest request와 HttpServletResponse response는 눈에 보이지는 않지만 사용이 가능하다.

PrinterWriter out = response.getWriter();가 생략되어 있다.


%>

(3) 표현식

<%= 변수 또는 메소드%>


<a>태그(액션태그)


Link를 걸 때 사용한다.

검색엔진에서 클라이언트가 많이 누른 액션태그의 url일수록 우선순위에 뜨게 된다.


위의 index.jsp에서 날짜포맷을 파라미터로 넘겨, 링크를 클릭하면 오늘의 날짜가 출력되도록 해보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import ="java.util.Date, java.text.SimpleDateFormat" %>
<!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=UTF-8">
<title>sdf파라미터를 받아서 오늘의 날짜 출력</title>
<!-- 브라우저 상단 탭에 표시되는 제목 -->
</head>
<body>
<!-- jsp는 web.xml 에 등록할 필요가 없어서 새로운 페이지를 만들때마다 서버를 끄고 킬 필요가 없다. -->
<%
    String today = new SimpleDateFormat(request.getParameter("sdf")).format((new Date()));
%>
    <h1>今日の日付: <%=today%></h1>
</body>
</html>
cs


request 객체의 getParameter를 이용하여 sdf 파라미터를 받아와, 자바에서와 똑같이 날짜를 띄울 수 있다.


JSP에서 임포트를 하기 위해서는

<%@ page import ="java.util.Date, java.text.SimpleDateFormat" %>

위와 같이 선언하면 된다.


또한, JSP는 web.xml에 따로 등록할 필요가 없으므로, 새로운 페이지를 만들 때 마다 서버를 끄고 켤 필요가 없다.

(새로고침 만으로 바뀐 내용을 확인할 수 있다.)