Spring MVC学习一

Spring MVC是一个构建服务器应用的框架,提供了标准的MVC设计模式,可以在此基础上比较方便的开发web程序。

一、Spring MVC环境配置

       在较早的没有提供注解机制的版本中,spring mvc各模块件间的映射主要是以配置文件的方式来联系的。在项目中有两个描述配置信息的xml文件。分别是web.xml和xxx-servlet.xml,二者可以都放在WEB-INF的目录下。

       其中web.xml是每个web项目都必需的文件,在这里用来将http请求递交给Spring框架去处理。这里还可以写一些通用的过滤器,比如编码方式转换等。(xxx为自己的命名)

       而xxx-servlet.xml文件则用来配置具体的url与处理方法的映射。即将每一个url请求递交给相应的方法去处理。在这里需要让控制器对应的类实现Controller接口的handleRenderRequest方法。

<pre name="code" class="java"><!--未使用注解时需要配置映射  -->
	<bean id = "urlMapping" class = "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name = "mappings">
			<props>
				<!-- key代表url,参数表示控制器的id,即下面的bean -->
				<prop key = "hello.do">helloController</prop>
			</props>
		</property>
	</bean>
<bean id = "helloController" class = "com.controllers.HelloController"/>
      

 


二、请求处理的方式

       Spring MVC的请求处理是方法级别的。一个请求一般对应一个方法,请求中包含的参数可以被方法读取到,经过处理后进行响应返回。方法的返回值一般都是一个ModelAndView对象。包含返回页面与返回模型(数据)。在页面中可以读取模型中的参数来显示。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~11/20~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

       今天接触的是基于注解机制的Spring MVC配置方式。使用注解基本上可以不用在xxx-servlet.xml中来进行url映射,而是使用@RequestMapping(“hello”)这样的方式来实现映射。

       在使用注解时,控制器对应的类不再需要实现Controller接口,而是在该类前面加上@Controller注解,然后再方法前加上@RequestMapping注解。如

@Controller
public class HelloController {
       //@ResponseBody用来声明返回值为数据,将会直接写入到HTTP的body中。
       @ResponseBody
       @RequestMapping("getJson")
       public String getJson(){
		Map model = new HashMap();
		model.put("cytus", getHello());
		Gson gson = new Gson();
		String result = gson.toJson(model);
		return result;
		}
这样就将url与方法对应起来了。

        在上面的代码中返回值并不是一个ModelAndView对象,而是一个Json格式的字符串,所以需要再增加一个@ResponseBody的注解,这个注解用来声明该方法的返回值为基本数据,而不是一个模型视图,会直接以body内容的形式写入到返回流中。对于服务器与移动应用间采用Json方式交换数据的通信来说是比较方便的。




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值