전송 방식


get방식 URL에 파라미터를 붙여서 전송


post방식 데이터 영역을 이용




인코딩 디코딩 방법



POST


인코딩 : 페이지에 charset 을 따름


1
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
cs
페이지 디렉티브의 charset을 따른다 이번에 공부하면서 처음 알았다.





디코딩 : 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"); %>
<%=%>
</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번 2번의 경우 post방식 처럼 모두
1
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
cs
페이지 디렉티브 charset으로 인코딩 된다


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

+ Recent posts