질의 문자열
클라이언트 -> 서버 전달 encoding 규칙
name = value 형식으로 전달, 쌍이 있으면 &으로 구분
영문자, 숫자, 아스키 문자코드는 그대로 전달 / 나머지는 %기호와 함께 16진수로 바뀜(복원 처리 필요)
공백은 +로 표현됨
Html의 form 단위로 데이터를 전송
텍스트와 펼침 목록은 name에
버튼 류는 value에 서버에 전달할 값을 저장해서 보낸다.
<form action="URI" method="요청방식">
action의 속성값이 / 로 시작하지 않으면 상대 경로가 지정 된다.
java 소스 Webservlet에는 URI 앞에 /가 같이 붙어야만 한다.
GET
단순 서버의 데이터를 가져오는 요청
form에서 method를 생략하거나 URL을 입력, <a> 태그로 요청을 하면 GET으로 요청된다.
URI 제한(255바이트)이 있으므로 짧은 데이터 전달 시 사용
질의 문자열이 헤더에 포함되어서 전달
외부 노출이 상관 없는 데이터 전달 시 사용
인코딩/디코딩 작업이 없어서 처리 속도는 빠름
질의 문자열을 URI에 직접 추가 가능
POST
서버의 데이터를 수정 or 상태변화하는 작업을 요청
질의 문자열이 헤더가 아닌 몸체에 포함되어서 전달된다.
데이터 외부 노출이 없다.
질의 문자열의 길이 제한도 없다.
<form> 태그로만 요청이 가능
HttpServletRequest 객체가 제공하는 추출 메소드
String getParameter(String name)
질의 문자열로 넘어온 값을 하나씩 추출할 때 사용
name이 유일하게 하나일 때 사용한다
GET/POST 다 사용 가능
String[] getParameterValues(String name)
여러 개의 변수가 전달 되었을 때, 배열로 받음
GET/POST 다 사용 가능
String getQueryString()
질의 문자열 전체를 하나의 String으로 추출
요청 정보의 헤더 데이터를 빼오기 때문에 Get에서만 사용 가능
ServletInputStream getInputStream() throws IOException
요청정보의 몸체에서 데이터를 받는다.
POST의 질의문자열을 한번에 추출할 때 사용
이 후 ServletInputStream의 readLine() 메소드를 사용해서 읽어옴.
한글 처리
POST 방식에서의 한글 처리
void setCharacterEncoding(String env) throws UnsupportedEncodingException
요청정보 몸체에 있는 문자열들을 인코딩해주는 메소드
GET 방식에서의 한글 처리
URI에 대한 인코딩 처리 작업만 하면 된다.
URI에 대한 작업은 클라이언트 단과 서버 단 둘 다 해줘야한다.
클라이언트 단의 인코딩은 Html 소스 헤더에 설정하거나 이클립스 설정에서 인코딩을 설정
서버 단의 인코딩은 server.xml에서 <Connector> 태그에 URIEncoding 구문을 넣어준다.
tomcat의 경우, 기본적으로 UTF-8이 기본값이기에 굳이 안바꿔도 된다.
웹서버 포트 변경하기
1. 하단의 Servers에 있는 Tomcat 을 더블 클릭
=> Ports 에 있는 HTTP/1.1 오른쪽에 있는 포트 번호를 바꾸고 저장하면 된다.
2. Server 폴더 하위에 있는 server.xml 파일의 Connector 태그의 port 속성값을 변경한다.
ctrl + shift + F : 자동 줄맞춤
ctrl + shift + O : 자동 import 삽입
'프로젝트 진행 공부 > Servlet & JSP' 카테고리의 다른 글
8장 JSP 프로그래밍 (0) | 2022.10.27 |
---|---|
7장 필터 / 리스너 / 오류처리 (0) | 2022.10.27 |
6장 상태 정보 유지 기술 (0) | 2022.10.24 |
5장 서블릿 설정과 변수 (0) | 2022.10.24 |
1~3장 (0) | 2022.10.19 |
댓글