springmvc框架

本文介绍了SpringMVC,它是Spring框架的模块、基于MVC的Web框架。以商品订单管理案例为驱动,详细阐述了SpringMVC入门程序,包括环境准备、前端控制器等配置,还介绍了非注解和注解的处理器映射器与适配器,以及部署调试相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    1. 什么是springmvc

springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。

springmvc是一个基于mvc的web框架。

 

    1. mvc在b/s系统 下的应用

 

mvc是一个设计模式,mvc在b/s系统 下的应用:

 

springmvc框架

 

 

  1.  

 

 

2.入门程序

   2.1需求

以案例作为驱动。

springmvc和mybaits使用一个案例(商品订单管理)。

 

功能需求:商品列表查询

 2.2环境准备

java环境:

jdk1.7.0_72

eclipse indigo

springmvc版本:spring3.2

需要spring3.2所有jar(一定包括spring-webmvc-3.2.0.RELEASE.jar)

2.3   配置前端控制器

在web.xml中配置前端控制器。

  2.4 配置处理器适配器

在classpath下的springmvc.xml中配置处理器适配器

通过查看原代码:

此适配器能执行实现 Controller接口的Handler。

2.5 开发handler

需要实现 controller接口,才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter适配器执行。

public class ItemsController1 implements Controller {

 

@Override

public ModelAndView handleRequest(HttpServletRequest request,

HttpServletResponse response) throws Exception {

 

//调用service查找 数据库,查询商品列表,这里使用静态数据模拟

List<Items> itemsList = new ArrayList<Items>();

//向list中填充静态数据

 

Items items_1 = new Items();

items_1.setName("联想笔记本");

items_1.setPrice(6000f);

items_1.setDetail("ThinkPad T430 联想笔记本电脑!");

 

Items items_2 = new Items();

items_2.setName("苹果手机");

items_2.setPrice(5000f);

items_2.setDetail("iphone6苹果手机!");

 

itemsList.add(items_1);

itemsList.add(items_2);

 

//返回ModelAndView

ModelAndView modelAndView =  new ModelAndView();

//相当 于request的setAttribut,在jsp页面中通过itemsList取数据

modelAndView.addObject("itemsList", itemsList);

 

//指定视图

modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");

 

return modelAndView;

}

 

}

 

2.6视图编写

 

2.7配置handler 

将编写Handler在spring容器加载。

2.8配置处理器映射器

在classpath下的springmvc.xml中配置处理器映射器

2.9配置视图解析器

2.10  部署调试

访问地址:http://localhost:8080/springmvcfirst1208/queryItems.action

处理器映射器根据url找不到Handler,报下边的错误。说明url错误。

 

   

处理器映射器根据url找到了Handler,转发的jsp页面找到,报下边的错误,说明jsp页面地址错误了。

   

3.非注解的处理器映射器和适配器

        3.1 非注解的处理器映射器

处理器映射器:

    org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping

另一个映射器:

   org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

      

多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确的映射器处理。

  3.2   非注解的处理器适配器

           

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter

要求编写的Handler实现 Controller接口。 

org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter

要求编写的Handler实现 HttpRequestHandler接口。 

    

 

//使用此方法可以通过修改response,设置响应的数据格式,比如响应json数据

 

/*

response.setCharacterEncoding("utf-8");

response.setContentType("application/json;charset=utf-8");

response.getWriter().write("json串");*/

4 . DispatcherSerlvet.properties  

          

前端控制器从上边的文件中加载处理映射器、适配器、视图解析器等组件,如果不在springmvc.xml中配置,使用默认加载的。

5.注解的处理器映射器和适配器

    5.1配置注解映射器和适配器。   

           

    

<!-- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置

mvc:annotation-driven默认加载很多的参数绑定方法,

比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的RequestMappingHandlerMapping和RequestMappingHandlerAdapter

实际开发时使用mvc:annotation-driven

 -->

<!-- <mvc:annotation-driven></mvc:annotation-driven> --> 

   5.2  开发注解Handler 

   使用注解的映射器和注解的适配器。(注解的映射器和注解的适配器必须配对使用)    

  //使用Controller标识 它是一个控制器   

 

@Controller

public class ItemsController3 {

//商品查询列表

//@RequestMapping实现 对queryItems方法和url进行映射,一个方法对应一个url

//一般建议将url和方法写成一样

@RequestMapping("/queryItems")

public ModelAndView queryItems()throws Exception{

//调用service查找 数据库,查询商品列表,这里使用静态数据模拟 

List<Items> itemsList = new ArrayList<Items>();

//向list中填充静态数据

Items items_1 = new Items();

items_1.setName("联想笔记本");

items_1.setPrice(6000f);

items_1.setDetail("ThinkPad T430 联想笔记本电脑!");

Items items_2 = new Items();

items_2.setName("苹果手机");

items_2.setPrice(5000f);

items_2.setDetail("iphone6苹果手机!");

 

itemsList.add(items_1);

itemsList.add(items_2);

 

//返回ModelAndView

ModelAndView modelAndView =  new ModelAndView();

//相当 于request的setAttribut,在jsp页面中通过itemsList取数据

modelAndView.addObject("itemsList", itemsList);

 

//指定视图

modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");

 

return modelAndView;

}

}  

 

 ​​​​​​5.3   在spring容器中加载Handler  

   

<!-- 对于注解的Handler可以单个配置

实际开发中建议使用组件扫描

 -->

<!-- <bean class="cn.itcast.ssm.controller.ItemsController3" /> -->

<!-- 可以扫描controller、service、...

这里让扫描controller,指定controller的包

 -->

<context:component-scan base-package="cn.itcast.ssm.controller"></context:component-scan>

5.4  部署调试 

 访问:http://localhost:8080/springmvcfirst1208/queryItems.action 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值