記錄

Servlet) 예제(단순 알림 or 객체 전달) 본문

Web/Servlet

Servlet) 예제(단순 알림 or 객체 전달)

surhommejk 2018. 3. 29. 15:01

<연산을 통해 알림을 받을 때>-> script로 alert전달


<form name="f" action="MemoServlet" method="post" id="f">


cf) action에서 매핑값을 설정




@WebServlet("/MemoServlet")
public class Memoservlet extends HttpServlet {
private static final long serialVersionUID = 1L;




servlet 소스


protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    
doProcess(request, response);
}
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    
doProcess(request, response);
}
private void doProcess(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    //1.한글처리
     request.setCharacterEncoding("UTF-8");
     response.setContentType("text/html;charset=UTF-8");
    
    //2.데이터 받기
     String id = request.getParameter("id");
     String email = request.getParameter("email");
     String memo = request.getParameter("memo");
        
    //3.DB연결
    //4.Insert 실행
     memodao dao = new memodao();
     int n = dao.insertMemo(id, email, memo);
    
    //5.응답구성
     PrintWriter out = response.getWriter();
    
     if(n>0) {

  out.print("<script>");
  out.print("alert('성공적으로 회원가입이 완료되었습니다');");
  out.print("location.href = 'http://localhost:8090/WebServlet_4_memo_mvc/memo.html'");
  out.print("</script>");
   
  }else {
         // int resultrow = 0
         // 여기서 else문이 발동된다는 것은 dao 단에서 exception이 발생했다는 의미이다
        
         out.print("<script>");
         out.print("alert('회원 가입에 실패하였습니다');");
         out.print("</script>");
     }
}













<연산을 통해 객체를 받을 때> -> RequestDispatcher


예제 1)


<c:set var="memolist" value="${requestScope.memolist}"></c:set>
<div align=center>
<hr color=green width=400><h2> Line Memo List </h2><hr color=green width=400>
<table>
     <tr>
        <th>Writer</th>
        <th>MemoContent</th>
        <th>Email</th>
     </tr>
     <c:forEach var="memo" items="${memolist}">
        <tr>
            <td>${memo.id}</td> <-- ~.으로 접근하려면 getter구현 선행이 필수!!
            <td>${memo.email}</td>
            <td>${memo.content}</td>
        </tr>
     </c:forEach>
</table>
</div>
<a href='memo.html'>글쓰기</a>

</body>
</html>

EL에서 ~.으로 접근하려면 getter구현 선행이 필수!!




protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    doProcess(request, response);
}
private void doProcess(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
      
     // View page 별도 사용 : memolist.jsp
     try {
             // 전체 데이터 조회
             memodao dao = new memodao();
             ArrayList<memo> memolist = dao.getMemoList();
            
             // 요청 결과 저장
             request.setAttribute("memolist", memolist);
        
             // View 페이지 설정
             RequestDispatcher dis = request.getRequestDispatcher("/memolist.jsp");
            
             // request와 response가 가진 주소를 포워드
             dis.forward(request, response);
            
        
     }catch (Exception e) {
         e.printStackTrace();
     }
    
     }
}








예제 2)

public class Empdao {

    Connection cn = null;
    ResultSet rs = null;
    
    public Empdao() {
        cn = Singleton_Helper.getConnection("oracle");
    }
    
    public Emp emp_search(int empno){
        Emp temp = new Emp();
        String sql = "select * from emp where id = " + "'" + empno + "'";
                
        try {
            Statement stmt = cn.createStatement();
            rs = stmt.executeQuery(sql);
            
            while(rs.next()) {
                temp = new Emp(
                        rs.getInt(1),
                        rs.getString(2),
                        rs.getString(3),
                        rs.getInt(4),
                        rs.getString(5),
                        rs.getInt(6),
                        rs.getInt(7),
                        rs.getInt(8)
                        );
                return temp;
            }
            
        } catch (SQLException e) {
            e.printStackTrace();
        
        } finally {
            Singleton_Helper.close(rs);
            Singleton_Helper.close(cn);
        }
        return temp;
    }
}


private void doProcess(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
        
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    int empno = Integer.parseInt(request.getParameter("empno"));
    
    Empdao dao = new Empdao();
    Emp emp = dao.emp_search(empno);
    
    RequestDispatcher dis = request.getRequestDispatcher("/memolist.jsp");
        
    dis.forward(request, response);
}   
}


Comments