본문 바로가기
WEB/JSP

JSP 예제

by 둥바 2022. 7. 13.

1) JSP 서비스 경로 및 서블릿 정보 출력

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> </title>
</head>
<body>
<!-- 스크립틀릿 -->
<% 
String str = "hello jsp";
out.println(str + "<br>");
out.println(application.getRealPath("/"));

%>
<br>

<!-- jsp의 실제 서비스 경로값 : application.getRealPath("/")-->

<!-- getServletInfo() : 서블릿의 정보 출력 -->
<!-- 익스프레션(출력용)  -->
<%= getServletInfo() %>
</body>
</html>

 

Jsp의 내장객체인 application의 getRealPath() 메소드를 통해 jsp의 실제 서비스 경로값을 알 수 있다.

getServletInfo()메소드는 서블릿의 정보를 출력해준다.

 

2) 오늘 날짜를 원하는 형식으로 출력하기 ( 자바의 Date객체와 SimpleDateFormat 객체 활용)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Date"  %> <!-- 추가 -->
<%@ page import="java.text.SimpleDateFormat"  %> <!-- 추가 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> </title>
</head>
<body>
<% 
Date nowDate = new Date(); //날짜 객체 생성
out.println(nowDate+"<br>");//웹 브라우저에 출력
System.out.println(nowDate);//톰캣의 콘솔창에 출력

//원하는 데이터 포맷 지정
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy년 MM월 dd일 a HH:mm:ss");

//현재날짜를 지정한 포맷으로 변환
String formatDate = dateformat.format(nowDate);
%>

현재 날짜는 <%= formatDate %> 이다.
</body>
</html>

 

따로, import를 통해서 각 객체의 패키지 경로를 추가해줘야한다.

Date 오늘 = new Date();

SimpleFormat 형식 = new SimpleFormat("원하는 형식");

오늘을 원하는 형식으로 바꾸기 위해서

String 결과 = 형식(SimpleFormat의 참조변수).format(오늘);

 

3) 파일들끼리 결합(조각 낸 파일)하는 방식

 

jspf (fragment) - 페이지를 조각(페이지 모듈화) , 기본 html태그들 전혀 필요 없다.

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

<!-- jspf (fragment) : 조각파일 (페이지 모듈화)
따로 html의 기본태그들 필요 없다. -->
<% 
String c="#e0ffff";
String back_c="#8fbc8f";
%>

 

자바는 따로 기존의 폴더가 아닌 src/main/java 하위 폴더에서 처리

config 폴더에서 상수를 선언해준다.

 

package config;

public class Constants {
	public static final int MAX = 100;
}

cf) 갑자기 나온 자바지식

static final : 모든 영역에서 고정된 값으로 사용하는 상수일 경우 사용

static : 클래스의 고정된 멤버로, 객체를 생성하지 않고도 사용이 가능한 필드와 메소드(클래스 멤버)

final : 한 번 선언하면 값을 변경할 수 없는, 또는 상속 금지, 오버라이딩 금지의 의미

 

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

<h2>페이지 모듈화</h2>
<%
String str="hello jsp";
%>

 

위의 조각난 파일들을 한 곳으로 다 가져온다면 다음과 같다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- jspf파일은 inlcude로 가져온다. -->
<%@ include file="colr.jspf" %>
<!-- java파일은 import로(Config폴더 밑에 Constants라는 자바파일) 가져온다.-->
<%@ page import="config.Constants"  %> <!-- 자바는 import로 -->

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>모듈화된 페이지를 하나로</title>
<style type="text/css">

body {
	background-color: <%= c %>
}

</style>
</head>
<body>
<h2>최대값 : <%= Constants.MAX %></h2>
<jsp:include page="test1.jsp"></jsp:include>
<%-- <%= str %> 에러 : --%>
<!-- jsp액션태그 , 액션태그는 java변수를 공유할 수 없다. -->

<!-- jsp지시어 , java 변수 공유 가능하다. -->
<%@ include file="test1.jsp" %>
<%= str %>
</body>
</html>

jspf,jsp파일은 include로 가져오나 java파일의 경우 import를 사용한다.

또한, CSS에서도(style태그) 익스프레션 사용이 가능하다.

액션태그 jsp 지시어
<jsp:include page=""></jsp:include> <%@ include file="" %>
java 변수 공유 불가 java 변수 공유 가능

 

4) JSP 선언부

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% 
	String str1 = "java";
%>

<%! //jsp 선언부(전역변수, 메소드 선언)
	String str2 = "db";
	String getStr2(){
		return str2;
	}
%>

<%= str1 %><br>
<%= str2 %><br>
<%= getStr2() %>
</body>
</html>

전역변수나 메소드를 선언하는 영역이다.

 

5) 쿼리스트링방식 

-get방식) url?변수=값&변수=값(url에 정보값이 보여짐)

-post방식

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form method="get" action="queryString.jsp">
	 학번 : <input type="text" name="no"><br>
	 이름 : <input type="text" name="name"><br>
	<input type="submit" value="확인">
	</form>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>queryString.jsp</title>
</head>
<body>
<!--get방식은 post방식과 달리 한글처리가 가능 : utf-8처리X  -->
<!--그러나 post방식은 반드시
 request.getCharacterEncoding("utf-8"); 인코딩을 해야 한글처리가 가능하다. -->
<%

String no = request.getParameter("no");
String name = request.getParameter("name");



%>

학번 : <%= no %><br>
이름 : <%= name %>

</body>
</html>

 

get 방식의 경우, 따로 utf-8로 인코딩하지 않아도 한글 처리가 가능하지만,

post방식의 경우는 한글 처리를 위해서 반드시 utf-8로 인코딩해야만 한다.

 

 

'WEB > JSP' 카테고리의 다른 글

트랜잭션 처리, 배치 처리  (0) 2022.07.22
JDBC - DB연결해서 멤버 리스트 출력, 삽입, 삭제하기  (0) 2022.07.22
Session 객체  (0) 2022.07.18
웹 프로젝트 생성 및 DB연결  (0) 2022.07.17
JSP /SERVLET 개념 정리  (0) 2022.07.17