Spring( urlMapping 이용)
1 2 3 4 5 6 7 8 9 10 | <bean id="test04" class="banana.CtrlTest04"/> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/test04.pknu">test04</prop> </props> </property> </bean> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class CtrlTest04 implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { List<String> list = new ArrayList<String>(); list.add("apple"); list.add("banana"); list.add("orange"); list.add("kiwi"); ModelAndView mnv = new ModelAndView(); mnv.setViewName("view04"); mnv.addObject("fruits", list); return mnv; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <%@ page contentType="text/html; charset=utf-8" pageEncoding="EUC-KR"%> <%@ taglib prefix="q" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> </head> <body> WEB-INF/jsp/view04.jsp <q:forEach items="${fruits}" var="t"> ${t}<br/> </q:forEach> </body> </html> | cs |
결과적으로 ViewName으로부터 EL문을 사용한 jsp파일에 연결된다. 이 때 꼭 필요한 것이
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
spring.xml 파일에 viewResolver 라는 이름으로 prefix와 suffix를 이용해 고정된 파일 경로와 포맷을 지정해주는 것이다.
Spring ( urlMapping이용하지 않는 방법)
1 2 3 4 5 6 7 8 9 10 11 12 | <servlet> <servlet-name>apple</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>apple</servlet-name> <url-pattern>*.pknu</url-pattern> </servlet-mapping> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <bean id="ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.mariadb.jdbc.Driver" /> <property name="url" value="jdbc:mariadb://183.111.242.21:3306/pukyung05" /> <property name="username" value="pukyung05" /> <property name="password" value="pukyung00!!1" /> </bean> <bean id="jtpl" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="ds" /> </bean> <bean class="orange.CtrlSpring"> <property name="jdbcTemplate" ref="jtpl"/> </bean> | cs |
web.xml과 spring.xml
web.xml 에는 *.pknu 를 통해 spring.xml 에서 정보를 얻어 접속하는 것을 init-param으로 작성하고 spring.xml 에는 dbcp 접속정보 , dbcp import, 보여질 코드를 작성할 CtrlSpring 에 대한 Bean 연결 내용이 작성된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @RequestMapping("/list.pknu") public ModelAndView list() throws Exception { RowMapper<SpringVO> rowMapper = new RowMapper<SpringVO>() { @Override public SpringVO mapRow(ResultSet rs, int arg1) throws SQLException { SpringVO vo = new SpringVO(); vo.setNo( rs.getInt("no") ); vo.setData( rs.getString("data") ); return vo; } }; List<SpringVO> ls = jdbcTemplate.query("SELECT * FROM spring_T", rowMapper ); ModelAndView mnv = new ModelAndView(); mnv.setViewName("spring_list"); mnv.addObject("list",ls ); return mnv; } | cs |
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 | <%@ page contentType="text/html; charset=utf-8" pageEncoding="EUC-KR"%> <%@taglib prefix="q" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> </head> <body><%-- WEB-INF/jsp/spring_list.jsp --%> <table border="1" cellspacing="0" cellpadding="8"> <q:forEach items="${list}" var="t"> <tr> <td>${t.no}</td> <td>${t.data}</td> </tr> </q:forEach> </table> <br/><br/> <form method="POST" action="add2.pknu"> <input type="text" name="data"/> <input type="submit"/> </form> </body> </html> | cs |