22.12.09_TIL(JSP)

서준영·2022년 12월 9일
0

Today I Learned

목록 보기
7/11

JSP(servlet, parameter)

jsp파일에 html에서 form에 입력한 데이터 값(parameter)을 서버에 요청해 다른 jsp에 보내고 요청받은 jsp파일에 보여지도록 구현했다.

form tag

다음 내용에 맞게 입력하시오.

전공 분야를 입력하세요.

소프트웨어 시스템 네트워크 데이터베이스
이름
아이디
비밀번호
성별 조사 여성 남성
취미 조사 책 읽기 공부 하기 책 읽으며 공부하기 컴퓨터
하고 싶은 말
저장 다시쓰기

HTML과 CSS부분은 이전에 작년부터 꾸준히 많이 해왔기 때문에 form을 구성하고 type에 맞게 설정하는 부분은 쉽게 했다.

form에서 method가 post방식이면 action에 보내진 jsp파일에는 웹에서 한글로 치면 encoding방식이 달라 깨지게 된다.

post방식으로 서버에 요청했다면

<%request.setCharacterEncoding("UTF-8"); %>

line 1에 위의 servlet을 작성해준다.

위와 같이 작성해줘야 한글이 입력했을 때 깨지지 않는다.(get방식은 개발자환경이라 servlet작성을 안 해도 됌)

body tag

<%
String major[] = request.getParameterValues("major");
String name = request.getParameter("name");
String id = request.getParameter("id");
String pass = request.getParameter("password");
String sex = request.getParameter("sex");
String favorite[] = request.getParameterValues("favorite");
String contents = request.getParameter("contents");

	String str = "";
	if(major!=null){
		for(String temp : major){
			str += temp+" ";
		}
	}
	String str1 = "";
	if(major!=null){
		for(String temp : favorite){
			str1 += temp+" ";
		}
	}
%>
전공 : <%=str %><br>
이름 : <%=name %><br>
아이디 : <%=id %><br>
비밀번호 : <%=pass %><br>
성별 : <%=sex %><br>
취미 : <%=str1 %><br>
자기소개 : <%=contents %><br>

서버를 통해 데이터를 받으려면

request.getParameter와 request.getParameterValues방식이 있다.

getParameter = value값이 하나일 때 쓴다.
getParameterValues = Value값이 여러개 배열로 받을 때 사용된다.

getParameter는 서버를 통해 넘어온 매개변수가 String 변수로 받게되면 바로 데이터를 출력할 수 있지만, 배열로 받은 매개변수는 새로운 변수 하나를 더 만들어서 여러 데이터를 각각 받아 저장해야한다.

그래서 위 코드처럼 str과 str1을 만들어서 배열로 받은 값이 빈값이 아닐 시 새롭게 받았다.
매개변수를 String 변수로 받았다면 <%=변수명%>을 이용해서 화면에 출력이 가능하다.

사용법

String 변수명 = request.getParameter("name");
String 변수명 = request.getParameterValues("name");
name = html에 form tag에 지정해준 name값을 입력하면 변수에 value값이 저장됨

느낀점

처음으로 jsp에서 servlet을 통해 값을 요청받고 이용해보았다.
웹과 서버 사이의 소통이 어떻게 이루어지는지 이론으로만 들었던 것보다 실제로 해보니 프로세스가 어떤식으로 이루어지는지 더 잘 알게 되었다.

profile
개발자를 꿈꾸는 사람입니당

0개의 댓글