반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- java역사
- 자료구조
- cudnn
- html
- discrete_scatter
- 머신러닝
- web
- bccard
- 웹 용어
- 결합전문기관
- paragraph
- web 개발
- 대이터
- KNeighborsClassifier
- CES 2O21 참가
- postorder
- vscode
- classification
- inorder
- C언어
- tensorflow
- web 사진
- 재귀함수
- Keras
- web 용어
- 데이터전문기관
- mglearn
- CES 2O21 참여
- broscoding
- pycharm
Archives
- Today
- Total
bro's coding
java.web.model2.mvc.forward 본문
반응형
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Model2 MVC</title>
</head>
<body>
<h3>Model2 MVC Basic</h3>
<ul>
<li><a href="AllMemberCountServlet">총회원수 조회</a></li>
<li><a href="findMemberById-form.jsp">회원검색</a>
</ul>
<hr>
<img src="Model2-1.png">
<br>
<br>
<img src="Model2-2.png">
<br>
<br>
<img src="4_forward.png">
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원검색화면</title>
</head>
<body bgcolor="lime">
<%--
2. 아이디로 회원 검색
Controller Model Database
index.jsp -- findMemberById-form.jsp --request--> FindMemberByIdServlet <--> MemberDAO <-->
|
| Model 연동
| 회원이 존재하면
| request.setAttribute("memberVO",vo)
| forward find-ok-view.jsp
| 회원이 존재하지 않으면
| forward find-fail-view.jsp
|
View( find-ok-view.jsp )
request.getAttribute("memberVO")
or
View (find-fail-view.jsp )
alert() -> 회원검색결과가 존재하지 않습니다
location.href="findMemberById-form.jsp";
--%>
<form action="FindMemberByIdServlet">
아이디 <input type="text" name="memberId" required="required">
<button type="submit">검색</button>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>find-fail-view</title>
</head>
<body>
<%-- forward 방식이므로 request가 유지되므로 아래처럼 getParameter(name) 가 가능하다 --%>
<script type="text/javascript">
alert("<%=request.getParameter("memberId")%>
아이디에 대한 회원정보가 존재하지 않습니다");
location.href = "findMemberById-form.jsp";
</script>
</body>
</html>
<%@page import="org.kosta.webstudy13.model.MemberVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>find-ok-view</title>
</head>
<body>
<%
MemberVO vo = (MemberVO) request.getAttribute("memberVO");
%>
<h3>검색결과</h3>
아이디
<%=vo.getId()%><br> 이름
<%=vo.getName()%><br> 주소
<%=vo.getAddress()%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>membercount-view</title>
</head>
<body>
<%-- Controller가 request에 저장한 attribute 정보를 이용해 클라이언트에게 응답한다 --%>
총 회원수
<%=request.getAttribute("totalCount")%>
명
</body>
</html>
package org.kosta.webstudy13.controller;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.kosta.webstudy13.model.MemberDAO;
/**
* Servlet implementation class AllMemberCountServlet
*/
@WebServlet("/AllMemberCountServlet")
public class AllMemberCountServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AllMemberCountServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
MemberDAO dao = new MemberDAO();
int count = dao.getTotalMemberCount();
// request 객체에 회원수를 저장한다
request.setAttribute("totalCount", count);
// 적절한 이동방식(forward방식)으로 view를 선택하여 이동시켜 클라이언트에게 응답하게 한다
request.getRequestDispatcher("membercount-view.jsp").forward(request, response);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package org.kosta.webstudy13.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.kosta.webstudy13.model.MemberDAO;
import org.kosta.webstudy13.model.MemberVO;
/**
* Servlet implementation class FindMemberByIdServlet
*/
@WebServlet("/FindMemberByIdServlet")
public class FindMemberByIdServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FindMemberByIdServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("Find 검색작업");
// client로부터 검색할 회원의 아이디를 받아온다
String id = request.getParameter("memberId");
// Model과 연동, 연동 결과를 반환받는다
try {
MemberDAO dao = new MemberDAO();
MemberVO vo = dao.findMemberById(id);
String view = null;
if (vo != null) {// 회원이 존재하면
view = "find-ok-view.jsp";
// 검색 결과를 request에 저장한다
request.setAttribute("memberVO", vo);
} else {// 회원이 존재하지 않으면
view = "find-fail-view.jsp";
}
request.getRequestDispatcher(view).forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package org.kosta.webstudy13.model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// DAO : Data Access Object 데이터베이스 연동 로직을 정의한 객체
public class MemberDAO {
private String driver = "oracle.jdbc.OracleDriver";
private String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
private String user = "scott";
private String pass = "tiger";
public MemberDAO() throws ClassNotFoundException {
Class.forName(driver);
}
public void closeAll(PreparedStatement pstmt, Connection con) throws SQLException {
if (pstmt != null)
pstmt.close();
if (con != null)
con.close();
}
// 메서드 오버로딩
public void closeAll(ResultSet rs, PreparedStatement pstmt, Connection con) throws SQLException {
if (rs != null)
rs.close();
closeAll(pstmt, con);
}
public int getTotalMemberCount() throws SQLException {
int count = 0;
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "select count(*) from member";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next())
count = rs.getInt(1);
} finally {
closeAll(rs, pstmt, con);
}
return count;
}
public MemberVO findMemberById(String id) throws SQLException {
MemberVO vo = null;
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection(url, user, pass);
String sql = "select name,address from member where id=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if (rs.next()) {
vo = new MemberVO(id, null, rs.getString(1), rs.getString(2));
}
} finally {
closeAll(rs, pstmt, con);
}
return vo;
}
}
package org.kosta.webstudy13.model;
public class MemberVO {
private String id;
private String password;
private String name;
private String address;
public MemberVO() {
super();
// TODO Auto-generated constructor stub
}
public MemberVO(String id, String password, String name, String address) {
super();
this.id = id;
this.password = password;
this.name = name;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "MemberVO [id=" + id + ", password=" + password + ", name=" + name + ", address=" + address + "]";
}
}
반응형
'[IT] > java' 카테고리의 다른 글
java.DisignPattern.Front Controller Pattern (0) | 2021.04.16 |
---|---|
java.mvc.member (0) | 2021.04.14 |
java.DisignPattern.Singleton (0) | 2021.04.14 |
java.web.model2.mvc.redirect (0) | 2021.04.14 |
java.web.model2.mvc.forword/redirect (0) | 2021.04.12 |
java.web.model2.mvc (0) | 2021.04.12 |
java.web.초기 (0) | 2021.04.12 |
java.web.model1 (0) | 2021.04.12 |
Comments