URL뒤에 같이 보낼 데이터를 붙여서 다른 페이지로 넘길경우, GET형식으로 보낸다라고 한다.
문법 : <a href="xxxxxx.jsp? [보낼 데이터의 변수]= [보낼 데이터]"> [링크를 표시할때 표기할 데이터]</a>
예시 : <a href="handleBean1.jsp?byLink=<%= obj.getId() %>"><%= obj.getId() %>
버튼일 경우에도 마찬가지로 적용된다.
문법 : <button onclick="location.href='xxxxxx.jsp? [보낼 데이터의 변수]= [보낼 데이터]'">[링크를 표시할때 표기할 데이터]</button>
예시 : <button onclick="location.href='handleBean1.jsp?byLink=<%= obj.getId()%>'"><%= obj.getId() %></button>
여러가지 데이터를 보낼때는 &로 묶어준다.
문법 : <a href="xxxxxxx.jsp?[보낼 데이터의 변수]= [보낼 데이터] &[보낼 데이터의 변수2]= [보낼 데이터2]"> [링크를 표시할때 표기할 데이터]
예시 : <a href="foodBean1.jsp?byLink=<%= obj.getCode() %> &byLink2=<%=obj.getName() %> &byLink3=<%= obj.getPrice() %>&byLink4=<%= obj.getphoto() %>"><%="링크" %></a>
그런데 이때, 넘기는 데이터가 한글, 일어, 중국어 등일 경우,
각나라에서 만든 로컬 디지털문자[KO, JP등]를 쓰기때문에 자바가 못 알아듣는다.
따라서 표준 언어인 UTF-8로 바꿔줘야 한다.
POST의 경우에는 데이터를 받는 jsp쪽에만 인코딩 명령을 해주면 되는데,
GET의 경우에는 데이터를 보내는 쪽도 인코딩을 해줘야 한다.
먼저 보내는 쪽에서 처리해줘야 할 것
1. import추가 ⇒ <%@ page import="java.net.URLEncoder" %>
2. 한글이 넘어가는 URL데이터에 UTF-8인코딩 직접명령
⇒ &byLink2=<%=URLEncoder.encode([보낼 한글 데이터],"UTF-8") %>
이것만 하고 넘어가면 데이터가 처리되지만(실행도 가능하지만) 받는 쪽에서 인코딩을 안한상태이므로
출력결과가 ??? 물음표로 표시됨.
그래서 받는 쪽에서 처리해줘야 할 것
1. 제일 선두에 전체 페이지 인코딩한다는 명령 추가
⇒ <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
2. 바디 부분에 받은 데이터 인코딩 명령 추가 ⇒ <%request.setCharacterEncoding("UTF-8"); %>
끝.
이로서 한국어든 일본어든 중국어든 모든 로컬언어들이 잘 표시된다.
GET으로 데이터를 수송신할경우, 받는쪽, 주는쪽 모두 인코딩 작업을 해야 한다는 점을 꼭 명심하자.
'코딩 > JSP' 카테고리의 다른 글
session.setattribute request.setattribute 차이,다른점 (0) | 2021.11.25 |
---|---|
JDBC 자바빈즈를 사용해 데이터베이스 호출, 정렬, 검색기능 붙이기 (0) | 2021.11.16 |
JSP] 버튼을 누르면 한 페이지 안에서 값을 송신/수신, (POST, IF문 이용) (0) | 2021.11.08 |
JSP의 정의부터 설정, 기본적인 문법으로 간단한 퀴즈 프로그램 만들기 (0) | 2021.11.02 |
댓글