Spring Web MVC配置

Spring Web MVC是基于MVC思想的一种快速开发MVC程序的实现.

Spring Web MVC 相关的开发包:

spring-core-3.2.8.RELEASE.jar     spring-context-3.2.8.RELEASE.jar    spring-beans-3.2.8.RELEASE.jar    commoms-logging.jar    jstl.jar

spring -expression-3.2.8.RELEASE.jar         spring-web-3.2.8.RELEASE.jar     spring-webmvc-3.2.8.RELEASE.jar        standard.jar

 第一步:在web.xml文件中编写主控制器DispatcherServlet:

               

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  1. <servlet>  
  2.         <servlet-name>springMVC</servlet-name>  
  3.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.         <init-param>  
  5.                <param-name>contextConfigLocation</param-name>  
  6.                <param-value>classpath:applicationContext2.xml</param-value>  
  7.         </init-param>  
  8. </servlet>  
  9. <servlet-mapping>  
  10.           <servlet-name>springMVC</servlet-name>  
  11.           <url-pattern>*.from</url-pattern>  
  12. </servlet-mapping>  
  13. <filter>  
  14.         <filter-name>encodingFilter</filter-name>  
  15.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  16.         <init-param>  
  17.                 <param-name>encoding</param-name>  
  18.                 <param-value>utf-8</param-value>  
  19.         </init-param>  
  20. </filter>  
  21. <filter-mapping>  
  22.           <filter-name>encodingFilter</filter-name>  
  23.           <url-pattern>/*</url-pattern>  
  24. </filter-mapping>  
  25.  <welcome-file-list>  
  26.    <welcome-file>index.jsp</welcome-file>  
  27.  </welcome-file-list>  
  28. lt;/web-app>  
  1. </pre><pre name="code" class="html">第二部:配置HandleMapping文件,<pre name="code" class="html">该文件负责将不同的请求交给不同的Controller进行处理,这里使用的是组件扫描的          
也就是上面代码中的:
  1. <span style="color:#ff0000;">applicationContext2.xml  </span><pre name="code" class="html"><pre name="code" class="html"><pre name="code" class="html"><pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"  
  5.     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"  
  6.     xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"  
  7.     xsi:schemaLocation="  
  8.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
  9.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd  
  10.         http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd  
  11.         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd  
  12.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd  
  13.         http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd  
  14.         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd  
  15.         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">  
  16.   
  17.   
  18.     <context:component-scan base-package="tarena.controller"/>  
  1.         <!--支持注解应用-->  
  2.     <mvc:annotation-driven/>   
  3.              
  4.       <!-- 配置拦截器 -->  
  5. <!--     <mvc:interceptors>         
  6.        <mvc:interceptor>  
  7.             <mvc:mapping path="/**"/>  
  8.             <mvc:exclude-mapping path="/login/*"/>  
  9.            <bean class="tarena.interceptor.LoginInterceptor"/>  
  10.        </mvc:interceptor>  
  11.   
  12.     </mvc:interceptors>  
  13.     -->  
  14.     <!--   
  15.       <bean  
  16.              class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>  
  17.       <bean  
  18.              class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>  
  19.      -->  
  20.     <!-- 定义视图解析器,处理Controller返回的ModelAndView -->  
  21.     <bean id="viewResolver"  
  22.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  23.         <property name="prefix" value="/">  
  24.         </property>  
  25.         <property name="suffix" value=".jsp">  
  26.         </property>  
  27.     </bean>  
  28.       
  29.     <!-- 异常处理 -->  
  30.     <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
  31.         <property name="exceptionAttribute" value="ex"></property>  
  32.         <property name="exceptionMappings">  
  33.            <props>  
  34.                    <prop key="java.lang.Exception">exception</prop>  
  35.            </props>  
  36.         </property>  
  37.     </bean>  
  38.       
  39.     <!-- 自定义异常处理 -->  
  40.     <bean id="exceptionHandler" class="tarena.controller.MyMappingExceptionResolver"></bean>  
  41. </beans>  


也可以不用组件扫描,用另一种配置方法:SimpleUrlHandlerMapping,这个配置文件的中的m是在Controller文件中寻找相应的方法,
  1. 例如<a target=_blank href="http://3g.fang.com:8000/activityManage.d?m=getLotteryUserLimit">http://3g.fang.com:8000/user.d?m=getLotteryUserLimit</a>,这个url请求就是在<pre name="code" class="html">UserAction  
  1. </pre>  
  1. 配置文件的内容是:  
  1. <pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
  5.   
  6.     <!-- Request Mapping -->  
  7.     <bean id="urlMapping"  
  8.         class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  9.         <property name="mappings">  
  10.             <props>  
  11.                 <prop key="/main.d">mainAction</prop>  
  12.                 <prop key="/user.d">UserAction</prop></props>  
  13.         </property>  
  14.     </bean>     
  15.     <bean id="mainAction" class="com.soufun.wap.action.MainAction">  
  16.         <property name="methodNameResolver"><ref local="methodNameResolver"/></property>  
  17.     </bean>  
  18.     <bean id="UserAction" class="com.soufun.wap.action.UserAction">  
  19.         <property name="methodNameResolver"><ref local="methodNameResolver"/></property>  
  20.     </bean><bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">  
  21.         <property name="paramName"><value>m</value></property>     
  22.         <property name="defaultMethodName"><value>execute</value></property>  
  23.     </bean>  
  24. </beans>  

  1. 第三步:还是以上面的第一个配置文件为主,写Controller:package tarena.controller;  
  2. package tarena.controller;  
  3.   
  4.   
  5. import javax.servlet.http.HttpServletRequest;  
  6. //import javax.validation.Valid;  
  7.   
  8.   
  9. import org.springframework.stereotype.Controller;  
  10. import org.springframework.ui.Model;  
  11. import org.springframework.ui.ModelMap;  
  12. import org.springframework.validation.BindingResult;  
  13. import org.springframework.web.bind.annotation.ExceptionHandler;  
  14. import org.springframework.web.bind.annotation.ModelAttribute;  
  15. import org.springframework.web.bind.annotation.RequestMapping;  
  16. import org.springframework.web.bind.annotation.SessionAttributes;  
  17.   
  18.   
  19. import tarena.bean.User;  
  20.   
  21.   
  22. @Controller  
  23. @SessionAttributes("name")  
  24. @RequestMapping("/day01")  
  25. public class LoginController {  
  26.      //该方法对应/login/toLogin.from  
  27.     @RequestMapping("/toLogin")  
  28.     public String toLogin(){  
  29.     return "login";//进入login.jsp页面  
  30.     }  
  31.       
  32.     @RequestMapping("/login")  
  33.     public String login(HttpServletRequest request){  
  34.         //检查用户名和密码是否正确  
  35.     try {  
  36.         request.setCharacterEncoding("utf-8");  
  37.     } catch (UnsupportedEncodingException e) {  
  38.             // TODO Auto-generated catch block  
  39.             e.printStackTrace();  
  40.         }  
  41.         String name = request.getParameter("name");  
  42.         String password = request.getParameter("password");  
  43.         if("王彪".equals(name)&&"123456".equals(password)){  
  44.             return "ok";  
  45.         }else{  
  46.             return "login";  
  47.         }  
  48.     }  
  49.       
  50.     @RequestMapping("/login1")  
  51.     public ModelAndView login1(User user){  
  52.         //检查用户名和密码是否正确  
  53.         Map<String,Object> dataMap = new HashMap<String,Object>();  
  54.         dataMap.put("name",user.getName());  
  55.          System.out.println(user.getName()+"  "+user.getPassword());  
  56.         if("wangbiao".equals(user.getName())&&"123456".equals(user.getPassword())){  
  57.               
  58.             return new ModelAndView("ok",dataMap);  
  59.         }else{  
  60.             return new ModelAndView("login");  
  61.         }  
  62.     }  
  63.       
  64.     @RequestMapping("/login2")  
  65.     public String login2(@RequestParam("name")String name,  
  66.                               @RequestParam("password")String password){  
  67.         //检查用户名和密码是否正确  
  68.           
  69.         if("wangbiao".equals(name)&&"123456".equals(password)){  
  70.             return "ok";  
  71.         }else{  
  72.             return "login";  
  73.                   
  74.     }  
  75.       
  76.     @RequestMapping("/login03")  
  77.     public String login( User user,BindingResult errors,ModelMap model){  
  78.         //检查用户名和密码是否正确  
  79.         String str = null;  
  80.         str.length();  
  81.           
  82.         model.put("user",user);  
  83.         //判断校验是否出错误  
  84.         if(errors.hasErrors()){  
  85.             //有错误,表明用户表单输入有错误,就返回login.jsp  
  86.             return "login";  
  87.         }  
  88.         System.out.println(user.getName());  
  89.         if("wangbiao".equals(user.getName())&&"123456".equals(user.getPassword())){  
  90.             model.addAttribute("name", user.getName());  
  91.             return "ok";  
  92.         }else{  
  93.             return "login";  
  94.         }  
  95.     }  
  96.   
  97.     @ExceptionHandler  
  98.     public String execute(HttpServletRequest request,Exception e){  
  99.         request.setAttribute("e", "系统繁忙,请稍后重试");  
  100.         System.out.println("系统报错为:"+e);  
  101.         return "exception2";  
  102.     }  
  103.     @ModelAttribute("name")  
  104.     public User getUser(){  
  105.         return new User();  
  106.     }  
  107.       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值