[ITWILL : JSP]JAVA DATATYPE, Integer.parseInt(문자열), 동일한 파라미터의 값을 가지는 데이터가 여러개있을 경우 변수로 가져오기

ITWILL학원 : 14강 JSP기초 BY 정규태강사

1. JAVA DATA TYPE 자바데이터타입

기본형 8가지를 기억하면 나머지는 전부다 참조형이다.

1. 기본형 :8가지

    1. boolean : 1byte
    1. char : 2byte
    1. byte : 1byte
    1. short : 2byte
    1. int : 4byte
    1. long : 8byte
    1. float : 4byte
    1. double : 8byte

2. 참조형 : 엄청 많음

  • String
  • Scanner
  • 등등

2. 형변환

1. 묵시적 형변환

메모리공간의 크기가 작은 곳에서 큰 곳으로 자동변환.

  • 예시 : int(4바이트) -> double(8바이트) 자동으로 변환되는 것을 말한다

누가 자동으로 형변환을 해줄까?
정답은 컴파일러!!
문제가 없기때문에 컴파일러가 자동으로 형변환을 해준다.

2. 명시적 형변환

메모리공간의 크기가 큰 곳에서 작은 곳으로 변환.

왜 컴파일러가 자동으로 형변환을 해주지않을까?
메모리공간의 차이로 데이터손실이 발생하기때문에 자동형변환을 해주지않는다.

  • 예시
    인티저.파스인트(스트링)
    Integer.parseInt(문자열)은 문자열을 정수형(int)로 변경해준다.
1
2
3
4
5
6
7
8
// 이전페이지에서 정보를 받아오기
System.out.println("입력숫자 : " + request.getParameter("num")); //콘솔에서 출력
out.println("입력하신 숫자는 " + request.getParameter("num")); //html화면에서출력

//form태그에서 get방식으로 정보를 전달할시 모든 데이터는 string타입으로 변경되어 전달되기때문에
//숫자데이터 출력을 원하면 형변환Integer.parseInt()해줘야한다
int num = Integer.parseInt(request.getParameter("num"));
정수형값 : <%=num %> <br>

3. 파라미터값 한글처리

form get방식과 달리 post방식을 사용하면 한글이 깨지는 문제가 발생한다.
따라서 body태그 바로 밑에 파라미터 한글처리 코드가 필요하다.

1
2
3
4
<!-- form post방식을 사용하면 한글이 깨지는 문제가 발생하기때문에 파라미터 한글처리 코드가 필요하다  -->
<%
request.setCharacterEncoding("UTF-8");
%>

4. 동일한 파라미터의 값을 변수로 가져오기

사용자가 radio박스를 클릭하면 해당 데이터를 변수로 가져올수있다.

request.getParameter("") : 큰따옴표안에 name속성을 넣으면된다.

정보를 입력하는 페이지는 아래와 같이 radio버튼을 만들어놓았다.

1
2
3
4
5
6
7
<form action="정보출력페이지.jsp" method="post" name="fr">
<label>성별 : </label>
<input type="radio" name="gender" value="womyn"> 여성
<input type="radio" name="gender" value="men"> 남성

<input type="submit" value="제출">
</form>

정보를 출력하는 페이지는 아래와 같이 코딩하면 된다.

1
2
3
4
5
6
7
8
9
<h1>변수가져오기</h1>
<%
String gender = request.getParameter("gender");
%>

<h1>사용자정보출력</h1>

입력하신 정보를 아래에서 확인해주세요
성별은 <%=gender %>입니다 <br>

5. 동일한 파라미터의 값을 가지는 데이터가 여러개있을 경우

일반적으로 4번방법을 이용하면되지만 checkbox처럼 중복데이터가 가능한 경우는 어떻게 해야할까?
동일한 파라미터의 값을 가지는 데이터가 여러개있을 경우 배열을 통해서 데이터를 저장해야한다.

사용자가 몇개를 선택할지 모르지만 변수로 가져오고 싶다면 request.getParameterValues("")을 이용한다.

request.getParameterValues("") : 큰따옴표안에 name속성을 넣으면된다.

정보를 입력하는 페이지는 아래와 같이 checkbox버튼을 만들어놓았다.

1
2
3
4
5
6
7
8
<form action="정보출력페이지.jsp" method="post" name="fr">
<label>취미 : </label>
<input type="checkbox" name="hobby" value="game"> 게임
<input type="checkbox" name="hobby" value="movie"> 영화감상
<input type="checkbox" name="hobby" value="workout"> 운동

<input type="submit" value="제출">
</form>

정보를 출력하는 페이지는 아래와 같이 코딩하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<h1>변수가져오기</h1>
<%
// String hobby = request.getParameter("hobby");
//중복데이터 변수로 가져오기 불가능. 첫번째꺼데이터만 출력가능
//동일한 파라미터의 값을 가지는 데이터가 여러개있을 경우 배열을 통해서 저장해야한다.
String[] hobbyarr = request.getParameterValues("hobby"); //중복데이터 변수로가져오기가능
%>

<h1>사용자정보출력</h1>

취미는
<%
if(hobbyarr == null){ //취미를 선택 안한경우 처리
out.println("선택안함");
}else{
for(int i=0;i<hobbyarr.length;i++){
%>
<%=hobbyarr[i] %>
<%
}
}
%>
입니다<br>