자바개발과정/JSP&Servlet

게시판 - 값을 넘기는 방법

경진 2008. 7. 25. 11:13
첨부파일


write_form.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
     String imagePath = "../board/images/";
%>   
……
<form name=bbs_form method=post action="write_act.jsp">
……
<!-- hidden 속성을 이용해서 다음 이동 페이지에 값을 넘기고자 할때는  반드시 '<form>'태그안에 정의되어야 한다. -->
<input type="hidden" name="ip_num" value="<%=request.getRemoteAddr()%>">
</form>
……

write_act.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="com.board.*, java.util.HashMap" %>
<jsp:useBean id="bCtrl" scope="session" class="com.board.BoardCtrl" />
<jsp:useBean id="bDom" scope="session" class="com.board.BoardDomain" />
<jsp:useBean id="pMap" scope="session" class="java.util.HashMap" />
<!-- 'scope'의 속성 값에 따라 사용자의 요청(request)의 지속시간을 지정한다. -->
<%
    /*
     * 아래 'getParameter()'메소드에 인자로 들어있는 'ip_num'문자열은
     * 'write_form.jsp'페이지에서 <input type="hidden" name="ip_num">
     * 태그안에 'name'속성에 준 이름 'ip_num'이라는 문자열과 같은 값을 넣어주어야 한다.
     */

    String p_ip_num = request.getParameter("ip_num");
    out.println("write_form.jsp에서 넘어온 IP주소 입니다 : " + p_ip_num);
   
    /*
     * 여기서 'request'를 넘긴다는 것은 앞 화면(wirte_form.jsp)에서 속성으로 넘긴 값을
     * 이 객체를'param'으로 받아낸 함수들은 모두 'hidden'속성으로 넘어온 아이피 주소를 출력할 수 있다.
     */

    bCtrl.insertBoard(request);
   
    /*
     * 다음은 BoardDomain을 이용해서 hidden속성으로 넘긴 값을 Control층에 넘기는 방법에 대한 확인
     */
    bDom.setIp_num(p_ip_num);
    bCtrl.insertBoard(request, bDom);
   
    /*
     * 키와 값(value)로 처리하는 것들 쿠키, 세션, 해쉬맵
     */

    pMap.put("hm_ip_num", p_ip_num);
    bCtrl.insertBoard(request, bDom, pMap);
   
%>

BoardCtrl.java

package com.board;

import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;

public class BoardCtrl {
    /*
     * 글쓰기 등록
     * @param : 'req'는 'request'객체를 인자로 받음
     */
    public int insertBoard(HttpServletRequest req) {
        int count = 0;
        System.out.println("insertBoard(req)======================");
        System.out.println("req.getParameter(ip_num) : " + req.getParameter("ip_num"));
        System.out.println("====================================끝");
        return count;
    }
   
    /*
     * 글쓰기 등록
     * @param : 'req'는 'request'객체를 인자로 받음
     *          'bDom'은 'BoardDomain'객체를 인자로 받음
     */

    public int insertBoard(HttpServletRequest req, BoardDomain bDom) {
        int count = 0;
        System.out.println("insertBoard(req,bDom)================");
        System.out.println("req.getParameter(ip_num) : " + req.getParameter("ip_num"));
        System.out.println("=====================================");
        System.out.println("=====================================");
        System.out.println("bDom.getIp_num() : " + bDom.getIp_num());
        System.out.println("====================================끝");       
        return count;
    }
   
    /*
     * 글쓰기 등록
     * @param : 'req'는 'request'객체를 인자로 받음
     *          'bDom'은 'BoardDomain'객체를 인자로 받음
     *          'pMap'은 'HashMap'객체를 인자로 받음
     */

    public int insertBoard(HttpServletRequest req, BoardDomain bDom, HashMap pMap) {
        int count = 0;
        System.out.println("insertBoard(req,bDom,pMap)===========");
        System.out.println("req.getParameter(ip_num) : " + req.getParameter("ip_num"));
        System.out.println("=====================================");
        System.out.println("=====================================");
        System.out.println("bDom.getIp_num() : " + bDom.getIp_num());
        System.out.println("=====================================");       
        System.out.println("=====================================");
        System.out.println("pMap.get(hp_ip_num') : " + pMap.get("hm_ip_num"));
        System.out.println("====================================끝");       
        return count;
    }
}