반응형

JSTL(JSP Standard Tag Library)

 

JSTL은 이름 그대로 '자바 서버 페이지 표준 태그 라이브러리' 라는 뜻을 갖고 있습니다. JSP는 HTML 문서에서 Java 코드를 이용하여 동적인 페이지를 만드는 역할을 하는데 JSP에서 Java를 다루기 위해서는 스크립틀릿(scriptlet)을 사용합니다. 하지만, JSP에 포함된 HTML 태그와 스크립틀릿이 섞이면 유지 보수가 어렵기 때문에 실무에서는 HTML 태그 형식으로 사용할 수 있는 JSTL이 사용됩니다.

 

JSTL은 코드의 재사용률이 높고, 빠른 개발이 가능하며 스크립틀릿을 사용하지 않아도 된다는 장점이 있습니다.

 

JSTL 태그 종류

 

JSTL의 태그 종류는 아래의 표와 같으며, 사용할 때 JSP 지시자를 통하여 선언합니다.

 

JSTL 선언 예시) <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

 

태그 기술
core tags 변수 지원, URL 관리, 흐름 제어 등을 제공, URL은 http://java.sun.com/jsp/jstl/core , 접두사는 c
function tags 문자열 조작 및 문자열 길이를 지원, URL은 http://java.sun.com/jsp/jstl/functions , 접두사는 fn
formatting tags 메시지 형식화, 번호 및 날짜 형식화 등을 지원, URL은 http://java.sun.com/jsp/jstl/fmt , 접두사는 fmt
XML tags 흐름 제어, 변환 등을 제공, URL은 http://java.sun.com/jsp/jstl/xml , 접두사는 x
SQL tags SQL 지원을 제공, URL은 http://java.sun.com/jsp/jstl/sql , 접두사는 sql

 

core tags

 

태그 기술
c:out <% = ... %> 태그 작동 방식과 유사한 표현식의 결과를 표시
c:import 상대 또는 절대 URL을 검색하여 내용을 'var'의 문자열, 'varReader'의 Reader 또는 페이지에 표시
c:set 평가중인 표현식의 결과를 'scope'변수에 설정
c:remove 특정 범위에서 지정된 범위 변수를 제거하는 데 사용
c:catch 본문에서 발생하는 Throwable 예외를 포착하는 데 사용
c:if 조건을 테스트하는 데 사용되는 조건부 태그이며 표현식이 참인 경우에만 본문 내용을 표시
c:choose, c:when, c:otherwise 평가 된 조건이 true 인 경우 본문 내용을 포함하는 간단한 조건부 태그
c:forEach 기본 반복 태그, 고정 된 횟수 또는 초과 수집 동안 중첩 된 본문 내용을 반복
c:forTokens 제공된 델리 미터로 분리 된 토큰을 반복
c:param 포함하는 'import'태그의 URL에 매개 변수를 추가
c:redirect 브라우저를 새 URL로 리디렉션하고 컨텍스트 기준 URL을 지원
c url

 

function tags

 

메소드 기능
fn:contains() 프로그램에서 지정된 하위 문자열을 포함하는 입력 문자열인지 테스트하는 데 사용
fn:containsIgnoreCase() 입력 문자열에 대소 문자를 구분하지 않고 지정된 하위 문자열이 포함되어 있는지 테스트하는 데 사용
fn:endsWith() 입력 문자열이 지정된 접미어로 끝나는 지 테스트하는 데 사용
fn:escapeXml() XML 마크업으로 해석되는 문자를 escape
fn:indexOf() 지정된 하위 문자열이 처음 나타나는 문자열 내에서 인덱스를 반환
fn:trim() 문자열의 양쪽 끝에서 공백을 제거
fn:startsWith() 주어진 문자열이 특정 문자열 값으로 시작되는지 여부를 확인하는 데 사용.
fn:split() 문자열을 하위 문자열 배열로 분할
fn:toLowerCase() 문자열의 모든 문자를 소문자로 변환
fn:toUpperCase() 문자열의 모든 문자를 대문자로 변환
fn:substring() 주어진 시작 및 끝 위치에 따라 문자열의 하위 집합을 반환
fn:substringAfter() 특정 하위 문자열 다음에 문자열의 하위 집합을 반환
fn:substringBefore() 특정 하위 문자열 앞의 문자열 하위 집합을 반환
fn:length() 문자열 내부의 문자 수 또는 컬렉션의 항목 수를 반환
fn:replace() 모든 문자열을 다른 문자열 시퀀스로 바꿈

 

반응형
반응형

Servlet 한글(UTF-8) 인코딩 설정

 

서블릿에서 PrintWriter와 같은 클래스을 통해 한글을 입력하여 jsp 파일로 내보내는 경우, 그리고 폼 태그에서 입력한 값이 서블릿으로 넘어올 경우에 인코딩 설정이 되어 있지 않으면 한글이 정상적으로 출력되지 않습니다. 아래와 같이 서블릿의 메소드 시작 부분에 인코딩 설정을 해주면 정상적으로 출력됩니다.

 

response.setContentType("text/html; charset=utf-8");

response.setCharacterEncoding("utf-8");

request.setCharacterEncoding("utf-8");

 

@WebServlet("/UserHomeMain")
public class UserHomeMain extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public UserHomeMain() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        	// 넘어온 파라미터의 인코딩 설정을 UTF-8로 설정
        	request.setCharacterEncoding("utf-8");
        
        	// HTML이 UTF-8 형식이라는 것을 브라우저에게 전달
        	response.setContentType("text/html; charset=utf-8");
        
        	// 서블릿을 통해 생성되는 HTML 파일의 인코딩을 UTF-8로 설정
		response.setCharacterEncoding("utf-8");
		
		PrintWriter out = response.getWriter();
		
		out.println("<script>");
		out.println("alert('성공');");
		out.println("</script>");
		
		RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
		rd.forward(request, response);
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

 

반응형
반응형

JSP form 태그에서 값 넘기기

index.jsp 작성

값을 입력 받기 위해 form 태그를 위와 같이 작성합니다.

크롬에서 index.jsp 출력

크롬으로 확인해보면 아이디와 비밀번호 입력창, 전송 버튼이 생긴 것을 볼 수 있습니다.

 

아이디와 비밀번호 입력

테스트를 위해 아이디와 비밀번호를 입력합니다.

 

404 오류

form 태그의 action 속성에 "index_action.jsp" 를 경로로 지정했는데 이동할 페이지가 없어서 오류가 발생합니다.

 

index_action.jsp 작성

값을 넘겨 받을 index_action.jsp 파일 만들어줍니다.

 

다시 테스트

이번에는 페이지 이동만 확인할 것이니 아무것도 입력하지 않고 전송 버튼을 누릅니다.

 

페이지 이동 확인

아무것도 보이지 않지만 주소를 보면 index_action.jsp로 이동한 것을 볼 수 있습니다.

 

index_action.jsp 작성

페이지가 정상적으로 이동하는 것을 확인했으니 값을 받아봅시다.

JSP 기본 태그인 스크립트릿(<% %>)을 이용하여 index.jsp에서 값을 받아옵니다.

 

request.getParameter() 메소드를 사용하여 form에 들어간 값을 문자열로 받아줍니다.

인자로는 index.jsp의 form에서 name="" 안에 넣은 이름을 맞춰서 넣어야 합니다.

 

index.jsp에서 값 입력

값이 넘어가는 지 확인하기 위해 다시 임의로 값을 입력합니다.

아이디에 examid, 비밀번호에 exampass를 입력했습니다.

index_action.jsp 에서 넘어온 값 확인

정상적으로 넘어오는 것을 확인할 수 있습니다.

반응형
반응형

JSP 기본 태그

  HTML과 Java Script로 작성된 페이지와 다르게 JSP 기본 태그를 이용하면 사용자가 원하는 내용을 동적으로 출력할 수 있게 됩니다. JSP 태그는 서버에서 인식합니다.

 

종류

용도

형식
스크립트릿(scriptlet) 자바 코드를 작성합니다. <% %>
표현식(expression) 계산이나 함수를 호출한 결과를 문자열 형태로 출력합니다. <%= %>
선언(declaration) 변수와 메소드를 선언합니다. <%! %>
주석(comment) 설명을 작성합니다. <%-- --%>
지시자(directive) JSP 페이지의 속성을 지정합니다. <%@ %>
반응형

+ Recent posts