전송 방식
get방식 URL에 파라미터를 붙여서 전송
post방식 데이터 영역을 이용
인코딩 디코딩 방법
POST
인코딩 : 페이지에 charset 을 따름
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" %> | cs |
디코딩 : request.setCharEncoding("utf-8"); 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <%@ page language="java" contentType="text/html; charset=UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>post</title> </head> <body> <form action="post.jsp" method="post"> <input type="text" name="test"> <input type="submit" value="전송"> </form> <% request.setCharacterEncoding("utf-8"); String a = request.getParameter("test"); %> <%=a %> </body> </html> | cs |
13행 처럼 해주면 된다 간단하다.
주의할 점은 파라미터 값을 사용하기 전에 선언해야한다. 그 뒤로 나오는 코드에만 적용이 되기 때문이다.
GET
인코딩
1. <a>태그 사용시 : 페이지 charset을 따름
1 | <a href="http://localhost:8080/TestProject/trans/get.jsp?test=안녕">링크</a> | cs |
2. <form>태그 사용시 : 페이지 charset을 따름
1 2 3 | <form action="get.jsp" method="get"> <input type="text" name="test"> </form> | cs |
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" %> | cs ㅇ |
3. 직접 주소에 파라미터 입력시 : 웹 브라우저마다 다름
크롬 : UTF-8
익스플로러 : MS949 (설정으로 UTF-8 사용가능)
디코딩
1. 기본설정 charset은 WAS마다 다름
톰캣8 : UTF-8
톰캣7 : ISO-8859-1
그래서 크롬 브라우저와 톰캣8을 이용하면 별다른 설정 없이 한글 파라미터가 사용 가능했던 것이었다
2. server.xml 파일 변경하기
server.xml 파일을 보면 <Connector> 태그가 있다.
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
2-1 URL인코딩 지정해주기
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
URIEncoding="" 에 원하는 캐릭터 셋을 넣어 URL인코딩 방식을 정할 수 있다.
2-2 post 방식 처럼 request 사용하기
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
useBodyEncodingForURI="true" 를 넣어주면 post 디코딩 처럼 request.setCharacterEncoding("")을 사용 할 수 있다.
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=euc-kr" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>get</title> </head> <body> <form action="get.jsp" method="get"> <input type="text" name="test"> <input type="submit" value="전송"> </form> <% request.setCharacterEncoding("euc-kr"); %> <%= request.getParameter("test") %> </body> </html> | cs |
1행에 charset에 euc-kr 로 인코딩 하고 (form태그 get방식이니까)
15행에 request메소드로 디코딩 해주었다.
아직 방법 정도 밖에 몰라 아쉽다.
'JSP' 카테고리의 다른 글
[JSP] out.println 줄바꿈 (0) | 2018.08.07 |
---|---|
[JSP] Get방식 Post방식 차이점 (1) | 2018.07.26 |