환경은 STS + 톰캣 7 + JDK 1.7 + ORACLE 11G
워밍업삼아 우선 스프링 2.5를 기준으로 하나씩 해나간다.
우선 폴더 구조는 아래와 같다.
1. BoardistController.java
package board.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import board.dao.JdbcTemplateDao;
public class BoardListController extends AbstractController {
private JdbcTemplateDao boardDao;
public void setBoardDao(JdbcTemplateDao boardDao){
this.boardDao = boardDao;
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest req,
HttpServletResponse res) throws Exception {
// TODO Auto-generated method stub
List boardList = boardDao.list();
ModelAndView mav = new ModelAndView();
mav.setViewName("list.jsp");
return new ModelAndView("/board/list", "boardList", boardList);
}
}
2. JdbcTemplateDao.java
package board.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import board.vo.BoardVO;
public class JdbcTemplateDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
this.jdbcTemplate = jdbcTemplate;
}
public int count() throws Exception{
return jdbcTemplate.queryForInt("select count(*) from board");
}
public List list(){
List result = new ArrayList();
String sql = "select * from board order by board_seq desc";
RowMapper rowMapper = new RowMapper(){
@Override
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
// TODO Auto-generated method stub
BoardVO vo = new BoardVO();
vo.setBoard_seq(rs.getInt("board_seq"));
vo.setBoard_type(rs.getString("board_type"));
vo.setStep(rs.getInt("step"));
vo.setTitle(rs.getString("title"));
vo.setContent(rs.getString("content"));
vo.setIp(rs.getString("ip"));
vo.setDelete_yn(rs.getString("delete_yn"));
vo.setRegi_dt(rs.getString("regi_dt"));
vo.setRegi_user(rs.getString("regi_user"));
vo.setModi_dt(rs.getString("modi_dt"));
vo.setModi_user(rs.getString("modi_user"));
return vo;
}
};
result = jdbcTemplate.query(sql, rowMapper);
return result;
}
}
3. BoardVO.java
package board.vo;
public class BoardVO {
private int board_seq;
private String board_type;
private int step;
private String title;
private String content;
private String ip;
private String delete_yn;
private String regi_dt;
private String regi_user;
private String modi_dt;
private String modi_user;
public int getBoard_seq() {
return board_seq;
}
public void setBoard_seq(int board_seq) {
this.board_seq = board_seq;
}
public String getBoard_type() {
return board_type;
}
public void setBoard_type(String board_type) {
this.board_type = board_type;
}
public int getStep() {
return step;
}
public void setStep(int step) {
this.step = step;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getDelete_yn() {
return delete_yn;
}
public void setDelete_yn(String delete_yn) {
this.delete_yn = delete_yn;
}
public String getRegi_dt() {
return regi_dt;
}
public void setRegi_dt(String regi_dt) {
this.regi_dt = regi_dt;
}
public String getRegi_user() {
return regi_user;
}
public void setRegi_user(String regi_user) {
this.regi_user = regi_user;
}
public String getModi_dt() {
return modi_dt;
}
public void setModi_dt(String modi_dt) {
this.modi_dt = modi_dt;
}
public String getModi_user() {
return modi_user;
}
public void setModi_user(String modi_user) {
this.modi_user = modi_user;
}
@Override
public String toString() {
return "BoardVO [board_seq=" + board_seq + ", board_type=" + board_type
+ ", step=" + step + ", title=" + title + ", content="
+ content + ", ip=" + ip + ", delete_yn=" + delete_yn
+ ", regi_dt=" + regi_dt + ", regi_user=" + regi_user
+ ", modi_dt=" + modi_dt + ", modi_user=" + modi_user + "]";
}
}
4. index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>Board Test</h2>
<hr></hr>
<a href="board_list.do">Go to the list</a>
</body>
</html>
5. list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<jsp:useBean id="boardList" type="java.util.List" scope="request" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Test : ${requestScope.board}
<p></p>
Total cnt : ${boardCount}
<hr></hr>
<p align="center">
Board List
</p>
<table boarder="1">
<tr>
<th>No</th>
<th>Title</th>
<th>User</th>
<th>PostDate</th>
</tr>
<c:forEach var="vo" items="${boardList}">
<tr>
<th>${vo.board_seq}</th>
<th>${vo.title}</th>
<th>${vo.regi_user}</th>
<th>${vo.regi_dt}</th>
</tr>
</c:forEach>
</table>
</body>
</html>
6.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>HelloApp</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springapp-servlet.xml</param-value>
</context-param>
</web-app>
7. springapp-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- the application context definition for the springapp DispatcherServlet -->
<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix">
<beans:value>/</beans:value>
</beans:property>
<beans:property name="suffix">
<beans:value>.jsp</beans:value>
</beans:property>
</beans:bean>
<beans:bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<beans:property name="jndiName" value="jdbc/SpringDB"></beans:property>
<beans:property name="resourceRef" value="true"></beans:property>
</beans:bean>
<beans:bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<beans:property name="dataSource" ref="dataSource"></beans:property>
</beans:bean>
<beans:bean id = "boardDao" class="board.dao.JdbcTemplateDao">
<beans:property name="jdbcTemplate" ref="jdbcTemplate"></beans:property>
</beans:bean>
<beans:bean name="/board_list.do" class="board.controller.BoardListController">
<beans:property name="boardDao" ref="boardDao"></beans:property>
</beans:bean>
</beans:beans>
'프로그래밍 > SPRING 2.5' 카테고리의 다른 글
스프링 라이프 사이클 확인하기. (0) | 2013.09.11 |
---|---|
스프링의 구조 (0) | 2013.09.05 |
스프링 컨트롤러 계층 구조 (0) | 2013.09.05 |
DispatcherServlet (0) | 2013.09.04 |
스프링 MVC 라이프 사이클 (0) | 2013.09.04 |