Spring MVC 프레임 워 크 구축 설정 방법 및 상세 설명
1.Spring MVC 환경 구축:(Spring 2.5.6+Hibernate 3.2.0)
1.jar 패키지 도입
Spring 2.5.6:spring.jar、spring-webmvc.jar、commons-logging.jar、cglib-nodep-2.1_3.jar
Hibernate 3.6.8:hibernate 3.jar,hibernate-jpa-2.0-api-1.0.1.Final.jar,antlr-2.7.6.jar,comons-collections-3.1,dom4j-1.6.1.jar,javassist-3.12.0.GA.jar,jta-1.1.jar,slf4j-api-1.6.1.jar,slf4j-nop-1.6.4.jar,해당 데이터 베 이 스 를 구동 하 는 jar 패키지
2.웹.xml 설정(부분)
<!-- Spring MVC -->
<!-- ====================================== -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- servlet.xml , WEB-INF , [<servlet-name>]-servlet.xml, spring-servlet.xml
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- Spring -->
<!-- ====================================== -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring Bean 。 WEB-INF -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/applicationContext.xml</param-value>
</context-param>
3.spring-servlet.xml 설정spring-servlet 이라는 이름 은 위의 웹.xml 에
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context <A href="http://www.springframework.org/schema/context/spring-context-3.0.xsd">http://www.springframework.org/schema/context/spring-context-3.0.xsd</A>">
<!-- spring mvc -->
<context:annotation-config />
<!-- jar -->
<context:component-scan base-package="controller"></context:component-scan>
<!-- POJO -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- 。prefix: , suffix: -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp" />
</beans>
4.applicationContext.xml 설정
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- hibernate.cfg.xml -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:config/hibernate.cfg.xml</value>
</property>
</bean>
<!-- Hibernate -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- ( )-->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
<!-- Service -->
<bean id="loginService" class="service.LoginService"></bean>
<!-- Dao -->
<bean id="hibernateDao" class="dao.HibernateDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
상세 하 다Spring MVC 와 Struts 는 원리 적 으로 비슷 하 다.다음 코드 보기(주석):
package controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import entity.User;
@Controller // Struts Action
public class TestController {
@RequestMapping("test/login.do") // url , Struts action-mapping
public String testLogin(@RequestParam(value="username")String username, String password, HttpServletRequest request) {
// @RequestParam url ( required=false)
// @RequestParam :@RequestParam("username")
if (!"admin".equals(username) || !"admin".equals(password)) {
return "loginError"; // ( ), spring-servlet
}
return "loginSuccess";
}
@RequestMapping("/test/login2.do")
public ModelAndView testLogin2(String username, String password, int age){
// request response ,
// name ,
if (!"admin".equals(username) || !"admin".equals(password) || age < 5) {
return new ModelAndView("loginError"); // ModelAndView ( ),
}
return new ModelAndView(new RedirectView("../index.jsp")); //
//
// return new ModelAndView("redirect:../index.jsp");
}
@RequestMapping("/test/login3.do")
public ModelAndView testLogin3(User user) {
// , Struts ActionForm,User ,
String username = user.getUsername();
String password = user.getPassword();
int age = user.getAge();
if (!"admin".equals(username) || !"admin".equals(password) || age < 5) {
return new ModelAndView("loginError");
}
return new ModelAndView("loginSuccess");
}
@Resource(name = "loginService") // applicationContext.xml bean id loginService ,
private LoginService loginService; // spring get set , ,
@RequestMapping("/test/login4.do")
public String testLogin4(User user) {
if (loginService.login(user) == false) {
return "loginError";
}
return "loginSuccess";
}
}
상기 4 가지 방법 예 를 들 어 하나의 Controller 에 서로 다른 요청 url 이 포함 되 어 있 고 하나의 url 로 접근 할 수 있 으 며 url 매개 변 수 를 통 해 서로 다른 방법 을 구분 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/test2/login.do") // *.do Controller
public class TestController2 {
@RequestMapping
public String testLogin(String username, String password, int age) {
// , /test2/login.do ,
if (!"admin".equals(username) || !"admin".equals(password) || age < 5) {
return "loginError";
}
return "loginSuccess";
}
@RequestMapping(params = "method=1", method=RequestMethod.POST)
public String testLogin2(String username, String password) {
// params method
// , get
if (!"admin".equals(username) || !"admin".equals(password)) {
return "loginError";
}
return "loginSuccess";
}
@RequestMapping(params = "method=2")
public String testLogin3(String username, String password, int age) {
if (!"admin".equals(username) || !"admin".equals(password) || age < 5) {
return "loginError";
}
return "loginSuccess";
}
}
사실 Request Mapping 은 Class 에서 부모 Request 요청 url 로 볼 수 있 습 니 다.Request Mapping 은 방법 적 으로 하위 Request 요청 url 로 볼 수 있 습 니 다.부자 요청 url 은 결국 페이지 요청 url 과 일치 하기 때문에 Request Mapping 도 이렇게 쓸 수 있 습 니 다.
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/test3/*") // request url
public class TestController3 {
@RequestMapping("login.do") // request url, /test3/login.do
public String testLogin(String username, String password, int age) {
if (!"admin".equals(username) || !"admin".equals(password) || age < 5) {
return "loginError";
}
return "loginSuccess";
}
}
끝 말이상 의 Spring MVC 를 파악 하면 좋 은 기반 을 가지 게 되 었 고 거의 모든 개발 에 대응 할 수 있 습 니 다.이런 것들 을 능숙 하 게 파악 한 후에 더욱 깊이 있 게 유연 하 게 운용 할 수 있 는 기술,예 를 들 어 Jsp,Velocity,Tiles,iText 와 POI 등 여러 가지 보기 기술 을 사용 할 수 있 습 니 다.Spring MVC 프레임 워 크 는 사용 하 는 보 기 를 모 르 기 때문에 JSP 기술 만 사용 하도록 강요 하지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.