SpringMvc项目分析

首先在配置文件中配置一个视图解析器,视图解析器规定了视图解析的规则,即controller处理请求之后,返回给DispatcheServlet一个字符串(也可能是ModelAndView之类的),而DispatcheServlet又将字符串传递给视图解析器,不同的视图解析器会作出不同的处理,从而映射到不同的视图上,并进行渲染:

<?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"
       xsi:schemaLocation="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">
       <!--配置自动扫描的包-->
       <context:component-scan base-package="com.seven.demos"></context:component-scan>

       <!--配置视图解析器,将视图逻辑名解析为/WEB-INF/pages/<viewName>.jsp-->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
             <property name="prefix" value="/WEB-INF/pages/"/>
             <property name="suffix" value=".jsp"/>
      </bean>
</beans>

处理器类如下:

package com.seven.demos;

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

/**
 * Created by hu on 2016/4/2.
 */
/*
* 创建处理器类
* */
@Controller
public class Hello {
    @RequestMapping("/login")
    public String hello(){
        System.out.println("enter the hello method...");
        return  "hu";
    }
}

运行项目,那么在浏览器中输入"http://localhost:8082/webapp/login",就会访问/WEB-INF/pages/hu.jsp这个文件。

由上面控制器的代码可以看出,SpringMvc使用@RequestMapping注解为控制器指定可以处理哪些URL请求,这个注解在类定义处和方法定义处都可标注,

-在类处定义:提供初步的请求映射信息,相对于WEB应用的根目录。

-在方法处定义:提供进一步的细分信息。相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录。

DispatcheServlet截获请求之后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法。

@RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法,请求参数及请求头映射请求。@RequestMapping的value,method,params及heads分别表示请求URL,请求方法,请求参数以及请求头的映射条件,它们之间是与的关系,联合使用多个条件可以让请求映射更加精确,具体用法如下:

package com.seven.demos;

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

/**
 * Created by hu on 2016/4/2.
 */
@RequestMapping("/SpringMvc")
@Controller
public class SpringMvcTest {
    private final String SUCCESS="success";

    //  @RequestMapping还支持Ant风格的URL
    //    /user/*/createUser 匹配如: /user/aa/createUser、 /user/bb/createUser
    //    /user/**/createUser 匹配如: /user/aa/bb/createUser、/user/createUser
    //    /user/createUser?? 匹配如:/user/createUseraa、/user/createUserbb

    //test1()处理的是来自http://localhost:8082/webapp/SpringMvc/delete的POST请求,并且带有一个名为userId的参数
    //如果带有多个参数,可以使用{"param1","param2"},当然也支持简单的表达式,{"param1=value1","param2"},即请求中
    //必须包含两个参数,param1,param2,并且param1的值必须为value1
    @RequestMapping(value="/delete",method = RequestMethod.POST,params = "userId")
    public String test1(){
        return "test1";
    }
    /*
    * @PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中.
    * */
    @RequestMapping("/delete/{id}")
    public String delete(@PathVariable("id")Integer id){
        return SUCCESS;
    }

}

  

时间: 2024-10-21 19:58:28

SpringMvc项目分析的相关文章

SpringMVC+MyBatis项目分析与开发实例

一.用到的Jar包 <!-- ************ Spring测试包 ************* --><artifactId>spring-test</artifactId> <!-- ********** Spring的MVC核心包 ********** --><artifactId>spring-webmvc</artifactId> <!-- ************ MyBatis核心包 ************

MyEclipse建立SpringMVC入门HelloWorld项目

一.首先,建立空的web project项目: 1. 2. 3. 二.其次,导入先关jar包 1.将jar包导入SpringMVCHelloWorld\WebRoot\WEB-INF\lib目录下 三.接下来修改web.xml文件,在web中,指定我们的DispatcherServlet.(从这里进入SpringMVC的可控范围). 1. 2.web.xml中的内容如下: <?xml version="1.0" encoding="UTF-8"?> &l

SpringMVC后台使用对象接受参数字符串转日期

在springMVC配置文件中加入: <bean id="dateConvert" class="com.iomp.util.DateConvert"/> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property

springMVC+MyBatis+Spring 整合(3)

spring mvc 与mybatis 的整合. 加入配置文件: spring-mybaits.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" xm

SpringMVC 入门

1. SpringMVC 是什么 Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring MVC也是要简化我们日常Web开发的. Spring MVC也是服务到工作者模式的实现,但进行可优化.前端控制器是DispatcherServlet:应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器

SpringMVC中文件上传的客户端验证

SpringMVC中文件上传的客户端验证 客户端验证主要思想:在jsp页面中利用javascript进行对文件的判断,完成验证后允许上传 验证步骤:1.文件名称 2.获取文件的后缀名称 3.判断哪些文件类型允许上传 4.判断文件大小 5.满足条件后跳转后台实现上传 前台界面(验证上传文件是否格式满足要求): <body> <h2>文件上传</h2> <form action="upload01" method="post" 

【巨坑】springmvc 输出json格式数据的几种方式!

最近公司项目需要发布一些数据服务,从设计到实现两天就弄完了,心中窃喜之. 结果临近部署时突然发现.....  服务输出的JSON 数据中  date 类型数据输出格式要么是时间戳,要么是  {"date":26,"day":1,"hours":21,"minutes":38,"month":5,"seconds":22,"time":1498484302259,&qu

springmvc 类型转换器 自定义类型转换器

自定义类型转换器的步骤: 1.定义类型转换器 2.类型转换器的注册(在springmvc配置文件处理) 来解决多种日期格式的问题:

springMVC简单例子

spring MVC是显示层的mvc框架,和struts可以比较:和spring.hibernate没有比较性. 一 .开发流程 1)引jar包 //spring_core spring3.2.9core\commons-logging-1.2.jar spring3.2.9core\spring-beans-3.2.9.RELEASE.jar spring3.2.9core\spring-context-3.2.9.RELEASE.jar spring3.2.9core\spring-core