현재

[JSP] get, post, QueryString, form 및 데이터 전송 본문

웹 프로그래밍/JSP

[JSP] get, post, QueryString, form 및 데이터 전송

AAAge 2023. 10. 18. 17:16

파일위치 :  webapp/a1.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String a = request.getParameter("a");
	String b = request.getParameter("b");
	String c = request.getParameter("c");
	
	System.out.println(a);
	System.out.println(b);
	System.out.println(c);
%>  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
a1입니다.
<a href="./a2.jsp">a2로 이동!</a>
</body>
</html>

웹브라우저의 url에서 ?a=10&b=10 과 같이 변수값을 지정해 줄 수 있다.

 

파일위치 :  webapp/a2.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
a2입니다.
<!-- 링크는 무조건 get 방식이다. 강한주석은 %라는데용 -->
<a href="./a3.jsp?name=qwer">a3로 이동1!</a>
<a href="./a3.jsp?name=333&page=3">a3로 이동2!</a>
<a href="./a3.jsp?name=eeee&page=4">a3로 이동3!</a>

<br>
<!--
 
	get : 쿼리 스트링이 URL에 ?뒤에 붙는다.
	단점 : 링크이다 보니 쿼리스트링 길이에 제한이 존재한다.
	장점 : 사실상 영어, 특수문자를 제외하고 전송이 규칙상 불가능?
	
	post: 쿼리 스트링이 http의 헤더에(숨겨서) 붙는다.(사실상 대부분은 post방식이 좋다.)
	장점 : 쿼리스트링 길이 제한이 없다.
		언어제한이 없다.
		
	!결과적으로 form활용시 왠만하면 post방식을 사용하자.!
	get을 쓰는경우 : !검색! <- 만약 보안상 데이터 노출이 문제가 없고, 링크(URL)의 공유가 의미가 있는 경우
		
-->
<!-- form태그 활용시 get,post.. 으로 파라메터를 전달할 수 있다 -->
<!-- form 태그로 꼭 묶어줘야한다. 묶고나면 속성이 있어야한다.! why? -->
<!-- method로 방식 지정안해주면 기본으로 받는 방식 get,받는건 get이나 post나 차이는없다.-->
<form action="./a3.jsp" method="get">
<!-- 속성 name은 전송을 위해서 무조건 지정이 되어있어야한다 -->
name: <input name="name" type="text"><br>
page: <input name="page" type="number"><br>
<!-- 전송할려는 태그는 <button> 이나 input type="submit" 사용 -->
<!-- <input type="submit" value="transmit"> -->
<button>transmit</button> 
</form>

</body>
</html>

파일위치 :  webapp/a3.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//사실상 백엔드 코드
	request.setCharacterEncoding("utf-8"); // 필수코드 

	String name = request.getParameter("name");
	String p = request.getParameter("page");
	System.out.println("name: " + name);
	System.out.println("page: " + p);
%>


<%-- <%안에있는 코드는 사실상 Servlet코드이다. --%>  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
a3입니다.
<a href="./a1.jsp">a1로 이동!</a>
</body>
</html>

'웹 프로그래밍 > JSP' 카테고리의 다른 글

[JSP] Cookie  (0) 2023.10.18
[JSP] tomcat 저장공간 Application, Session, Request, Page  (2) 2023.10.18
[JSP] forward, redirect  (0) 2023.10.18
[JSP] include, header, footer  (0) 2023.10.18
[JSP] 지시자 및 기본 주석처리  (0) 2023.10.18