[JSP] 쇼핑몰 관리페이지 만들기 연습-7

🐷Jinie (juniorDeveloper)·2020년 10월 23일
0

JSP/MVC/SPRING

목록 보기
13/81

[리스트 나누기]

  • 페이지 나누기를 할 데이터를 생성해준다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="dbcon.jsp" %>	
<%@ include file="time.jsp" %>
<%
	String custno  = request.getParameter("custno");
	String custname= request.getParameter("custname");
	String phone   = request.getParameter("phone");
	String address = request.getParameter("address");
	String joindate= request.getParameter("joindate");
	
	
	for(int i=1;i <10000; i++){
		
		String k1[]={"하니","둘리","길동이","영심이","또치","짱구","미선","형만","삐약이","철수","영희"};
		String k21[]={"010","011","017","016","02"};
		String k22[]={"1111","3222","3333","4444","9999","1234","5658","7894"};
		String k23[]={"1212","6667","1255","8522","7892","0002","4563","2580"};
		String k3[]={"서울","경기","인천","제주","홍콩","필리핀","일본","미국","대전","부산"};
		
		int ch1  = (int)(Math.random()*10);
		int ch21 = (int)(Math.random()*10);
		int ch22 = (int)(Math.random()*10);
		int ch23 = (int)(Math.random()*10);
		int ch3  = (int)(Math.random()*10);
		
	try{
		sql = "insert into guest (custno, custname, phone, address, joindate)";
	 		   sql = sql + " values(guest_idx.nextval,?,?,?,?) ";
	   	pstmt = con.prepareStatement(sql);
	   	
	    pstmt.setString (1, k1[ch1]);
	    pstmt.setString (2, k21[ch21]+"-"+k22[ch22]+"-"+k23[ch23]);
	    pstmt.setString (3, k3[ch3]);
	    pstmt.setString (4, time1);
	    pstmt.executeUpdate() ;

	}catch(Exception e){
		e.printStackTrace();
	}finally{
	 }
	}
%>
  • Random 을 이용해서 난수발생, 난수를 이용한 배열값을 쿼리로 INSERT했다.
  • Math.Random()은 0.0~1 사이의 double난수를 발생시키기 때문에, 10을 곱했다.
    또한, 형은 (Int)로 지정해주면서 뒤에 들어올 소숫점을 짤라주었다.
    종자값 설정이 현재시각기준으로 자동설정되기때문에 난수생성변수를 여러개 만들었다.
  • Class.Random을 사용할수도있는데 이럴경우에는 float, double, int 등 다양한 형의 난수가 가능하고, 종자값 설정이 가능하다.

  • ORACLE의 rownum은 위와같이 1부터 시작이 가능하다. (2부터시작 불가)
    따라서 나누기를 진행할때 생각이 필요하다.

  • 위와같이 쿼리를 작성하면 21번부터 30번까지의 RN을 출력할 수 있다.
    이 원리가 웹의 페이지 나누기에 적용된다.


  • JSP로 적용해본다.
  • 범위에는 ? 를 지정하고 변수로 받아서 쿼리를 실행한다.
  • 21~30까지를 넣어주었기 때문에, 번호 21번~ 30번까지만 출력해준다.


  • 위와같은 원리를 이용해서 변수 idx를 만들어 [이전][다음] 을 누를 수 있도록 기능을 만든다.
  • 변수 idx를 만들고 idx가 null(비어있을때), 1을 대입한다.
  • 비어있지 않을 경우, 웹에서 매개변수를 받아온다.
  • 단, 웹에서 넘어오는 값은 String형 이므로, Integer.parseInt를 통해 int형으로 변환한다.
  • 받아온 idx를 기준으로 그 외 9개의 데이터를 더 찍어내야 10개의 데이터를 한 페이지에 출력할 수 있다. 따라서 끝값은 idx+9 시작값은 idx를 넣어준다.


  • if-else문을 이용해 [이전]버튼이 맨 첫장일 경우 활성화되지 않도록 설정한다.

  • 주소창에 보면, 웹에서 보내는 값이 잘 찍히는 것을 볼 수 있다.

  • 처음으로 버튼에는 idx가 1번부터 실행되어야 하기 때문에 idx=1을 넣어주었다.





  • 페이지나누기 최종까지 완성했다. 다만, 함수나 전체적인 식부분에 대한 이해가 필요해서
    추가 정리할 예정이다.
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글