最新消息:请随时分享你的乐趣!

spring4-mvc-前端路由讲解

技术博客 磊子 1829浏览 0评论

Sping mvc 前端路由讲解

1 什么是spring mvc

spring mvc 是spring的一个分支位于spring framework下mvc与restweb框架开发里边。所以你需要spring core 和framework

下面是写参考界面:
  1. 什么是spring mvc?spring mvc作用架构?参考:http://jinnianshilongnian.iteye.com/blog/1594806
  2. spring mvc参考:http://www.oschina.net/question/84460_9608

2 DispatcherServlet

org.springframework.web.servlet.DispatcherServlet

请求配置文件流程图:

sprmvc

3 Controller

Controller中方法的返回值:

  1. void:多数用于使用PrintWriter输出响应数据;
  2. String 类型:返回该String对应的View Name;
  3. 任意类型对象:返回ModelAndView:

Controller内部请求:

请求:

参数请求 : HttpServletRequest request,

HttpServletResponse response,

HttpSession session,

PrintWriter out,

User user //可以直接是表单对象

注解参数:

@CookieValue:cookie数据到处理器功能处理方法的方法参数上的绑定;
@RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;
@RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换);
@ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);
@ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;
@ExceptionHandler:注解式声明异常处理器;
@RequestParam:请求参数;
@PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful架构风格的

4 拦截器

    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/index.htm" />
            <bean class="com.minx.crm.web.interceptor.MyInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>

5 国际化

    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource"
        p:basename="message">
    </bean>

6 贴出代码:

web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
        <display-name>sprmvc</display-name>
        <servlet>
            <!-- 这里的名字(sprmvcconfig)是需要在本目录下默认读取sprmvcconfig-servlet.xml的文件名-->
            <servlet-name>sprmvcconfig</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>sprmvcconfig</servlet-name>
            <url-pattern>*.htm</url-pattern>

        </servlet-mapping>
        <welcome-file-list>
            <welcome-file>login.html</welcome-file>

        </welcome-file-list>
    </web-app>

sprmvcconfig-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:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
        <!-- Enable annotation driven controllers, validation etc... -->
        <!--这是一个模块 -->
        <context:component-scan base-package="com.cockybook.sprmvc.controller"/>
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value=""/>  <!--这里的前缀是资源文件路径 -->
            <property name="suffix" value=".html"/>
        </bean>

    </beans>

com.cockybook.sprmvc.controller.LoginContorller.java

    package com.cockybook.sprmvc.controller;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import javax.websocket.server.PathParam;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.CookieValue;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    /**
     * Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping 注解定义我们的处理器类并且提供了一组强大的注解:<br>
     * 需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping注解的处理器。</br>
        @Controller:用于标识是处理器类;<br>
        @RequestMapping:请求到处理器功能方法的映射规则;<br>
        @RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;<br>
        @ModelAttribute:请求参数到命令对象的绑定;<br>
        @SessionAttributes:用于声明session级别存储的属性,放置在处理器类上,通常列出模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;</br>
        @InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;</br>
     * @author lei
     *
     */
    @Controller
    public class LoginContorller {

        /**
         * <b>请求:</b></br>
         * 参数请求  :
         * HttpServletRequest request, </br>
         * HttpServletResponse response, </br>
         * HttpSession session,</br>
         * PrintWriter out,</br>
         * User user   //可以直接是表单对象</br>
         * 注解参数:</br>
         * <pre>
         *  @CookieValue:cookie数据到处理器功能处理方法的方法参数上的绑定;</br>
         *  @RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;</br>
         *  @RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换);</br>
         *  @ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);</br>
         *  @ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;</br>
         *  @ExceptionHandler:注解式声明异常处理器;</br>
         *  @PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful架构风格</br>
         * </pre>
         * <b>返回:</b>
         * @param userName
         * @return
         */
        @RequestMapping("/login")
        public String login(@PathParam("userName")String userName,@RequestParam("email") String email,@CookieValue(value="JSESSIONID",defaultValue ="")String cookie){
            System.out.println("login................"+userName);
            System.out.println("cookie................"+cookie);
            return "index";//index.jsp

        }

        @RequestMapping(value = "/login", method = RequestMethod.POST)
        public String login2(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
                String username = request.getParameter("userName").trim();
                System.out.println(username);
            return "login";
        }

    }

转载请注明:印迹. » spring4-mvc-前端路由讲解

发表我的评论
取消评论

表情