String a = request.getParameter("a");
String b = request.getParameter("b");
String c = request.getParameter("c");
// --> HTTP 요청에서 "a"라는 이름의 매개 변수를 검색하는거임!!!! (url에 사용자가 a값을 쿼리 스트링으로 넣겠지)
// console창 출력결과
System.out.println(a); // 10
System.out.println(b); // 20
System.out.println(c); // null
## Query String : 파라메터를 넘기는 방법 중 하나! (form tag처럼)
- 문법) URL주소뒤에 물음표(?)를 붙이고 key1=value1&key2=value2... -> get 방식으로 데이터를 요청
key=value 형식으로 구성되어있고, 여러 개를 사용하려면 '&'을 사용
- 예시) http://localhost:8181/P1017_2/a1.jsp?a=10&b=20
-> a1를 request하되, a=10, b=20을 넘기겠다
- 특징) 무.조.건! 문자열 방식임
# Get / Post
<!-- 정리1] Link(= a tag)는 무조건 get 방식이다★ -->
<!-- Q. 똑같은 페이지, 검색을 다르게 했을 때 html이 완전히 다르지? -->
<!-- 사실상 밑에처럼 같은 페이지 링크에서 query만 변경된거임 -> if로 돌리거나 하면 되겠지? -->
<a href="./a3.jsp?name=qwer">a3로 이동11</a>
<a href="./a3.jsp?name=333&page=3">a3로 이동22</a>
<a href="./a3.jsp?name=eee&page=4">a3로 이동33</a>
<!-- 이렇게 저장해놓고, a3가서 get해야지 -->
<!-- 정리2] form활용시, get/post.. 으로 파라메터를 전달할 수 있다
-> get방식 : URL에 query string이 존재한다? 무조건 get방식임 -->
[ a2 페이지]
<form action="./a3.jsp" method="post">
name : <input name="name" type="text"><br>
page : <input name="page" type="number">
<input type="submit" value="전송"><br>
<!-- <button></button> 이것도 된당! -->
</form>
1. 이렇게 입력양식이 있고, 저장을 누르면 a3로 이동하게 할거임
---> submit을 누르면 action이 발생한다!!!!!!
---> 폼 핸들러의 주소는 <form> 요소의 action 속성에 명시됨
2. form tag : 보이지 않으나 입력양식들을 묶어주며, 한페이지에 여러개 사용 가능하다
3. action : 폼 데이터(form data)를 서버로 보낼 때 해당 데이터가 도착할 URL
---> action은 form tag내에서만 사용가능 ★
4. 사용자가 입력한 내용도 a3로 같이 전달해줘야겠지? ★★ ★
** name : 폼(form)이 제출된 후
서버에서 폼 데이터(form data)를 참조하기 위해 사용되거나, 자바스크립트에서 요소를 참조하기 위해 사용
-> JS의 ID와 전혀다르다!!! 값을 전달하기 위한 용도
-> form이 없으면 의미가 없지?
-> method를 안적으면 디폴트가 get임
-> 양식이 제출될 때 식별할 수 있도록하는것!!!!
추가] submin대신 button?
input type="button" : JS용도의 버튼, 아무일도 발생X
<button></button> : submit처럼 넘어갈 수 있음
[ a3페이지 ]
// 사실상 백앤드 코드!
request.setCharacterEncoding("utf-8"); // 필수코드!!! 한국어...
String n = request.getParameter("name");
String p = request.getParameter("page");
System.out.println("name : " + n);
System.out.println("page : " + p);
/* 1. method=get 일 때
- url : a3.jsp?name=123&page=123
2. method=post 일 때
- url : a3.jsp (뒤에 추가된 것 없음)
--> 둘다 콘솔에 출력 잘된당
*/
** get / post방식 차이점 (문법 : <form method="get || post">)
1. get :
- query string이 URL에 붙는다 (= 오픈해서 전송)
- query string 길이 제한이 존재함
- 사실상 영어/특수문자를 제외하고 전송이 규칙상(?) 불가능하다
2. post :
- query string이 http헤더에 붙는다 (= 숨겨서 전송)
- query string 길이 제한 X
- 언어 제한이 없다.
★ ★ ★ 활용]
- 활용1 : form활용 시 웬만하면 post방식을 사용하자.
- 활용2 : 아이디/비밀번호 같은 경우는 숨겨서 post방식으로 전송해야겠지?
-> 이런경우 아니면 보안적으로는 post를 쓰지는 않는다
- 활용3 : 데이터 노출이 보안상 문제가 없고, 링크(URL)의 공유가 의미가 있는 경우
(ex. 카톡으로 링크전송할 때는 바로바로 접근 가능해야겠지?) -> get을 사용!
'JSP > DAY 40 _ 23.10.17' 카테고리의 다른 글
MVC Basic (0) | 2023.10.20 |
---|---|
JSP Basic (0) | 2023.10.19 |