springMVC_基本开发及配置
来源:互联网 发布:淘宝卖家信用度怎么看 编辑:程序博客网 时间:2024/06/03 10:30
1. 导包
因为springMVC是spring的一个web应用包,所以,只需要再spring需要导的包的基础上再多导入spring-webmvc-3.2 RELESE.jar包就可以了。
2. 前端控制器(DispatcherServlet)配置
<!-- 前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 加载springmvc配置 --> <init-param> <param-name>contextConfigLocation</param-name> <!-- 配置文件的地址 如果不配置contextConfigLocation, 默认查找的配置文件名称classpath下的:servlet名称+"-serlvet.xml"即:springmvc-serlvet.xml --> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 可以配置/ ,此工程 所有请求全部由springmvc解析,此种方式可以实现 RESTful方式,需要特殊处理对静态文件的解析不能由springmvc解析。 可以配置*.do或*.action,所有请求的url扩展名为.do或.action由springmvc解析,此种方法常用。 不可以/*,如果配置/*,返回jsp也由springmvc解析,这是不对的。 --> <url-pattern>*.action</url-pattern> </servlet-mapping>
3. 处理器映射器(HandlerMapping)配置
<1>在springmvc.xml中配置:
<!-- 配置处理器映射器 springmvc框架根据HandlerMapping接口判断是否是处理器映射器 --><!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
我们用到了这个处理器映射器BeanNameUrlHandlerMapping,它是根据请求URL(XXXX.action)匹配spring容器bean的name,找到相对应的bean(程序编写的Handler)。
注意:所有的处理器映射器都实现HandlerMapping接口。
<2>使用注解方式
spring3.1之前默认加载映射器是org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping。3.1之后要使用:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping在springmvc.xml中配置RequestMappingHandlerMapping:使用RequestMappingHandlerMapping需要在Handler中使用@controller标识此类是一个控制器,使用@requestMapping指定Handler方法所对应的url。
4. 处理器适配器(HandlerAdapter)配置
<1>在springmvc.xml中进行配置:
<!-- 配置处理器适配器 springmvc框架根据HandlerAdapter接口判断是否是处理器适配器 --><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
程序编写Handler根据适配器的要求编写。
SimpleControllerHandlerAdapter适配器要求
通过supports方法知道Handler必须要实现哪个接口
注意:所有的处理器适配器都实现HandlerAdater接口。
<2>注解适配器的方式
spring3.1之前默认加载映射器是org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter,3.1之后要使用:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapterRequestMappingHandlerAdapter,不要求Handler实现任何接口,它需要和RequestMappingHandlerMapping注解映射器配对使用,主要解析Handler方法中的形参。
5. Handler编写
<1>开发Handle
public class ItemController2 implements HttpRequestHandler { @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 使用静态数据将商品信息列表显示在jsp页面 // 商品列表 List<Items> itemsList = new ArrayList<Items>(); Items items_1 = new Items(); items_1.setName("联想笔记本"); items_1.setPrice(6000f); items_1.setCreatetime(new Date()); 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); request.setAttribute("itemsList", itemsList); //转发到jsp页面 request.getRequestDispatcher("/WEB-INF/jsp/itemsList.jsp").forward(request, response); }
<2>注解开发Handle
@Controllerpublic class ItemController3 { //商品列表,@RequestMapping中url建议和方法名一致,方便开发维护 @RequestMapping("/queryItems") public ModelAndView queryItems(){ // 使用静态数据将商品信息列表显示在jsp页面 // 商品列表 List<Items> itemsList = new ArrayList<Items>(); Items items_1 = new Items(); items_1.setName("联想笔记本"); items_1.setPrice(6000f); items_1.setCreatetime(new Date()); 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 = new ModelAndView(); modelAndView.addObject("itemsList", itemsList); //指定逻辑视图名 modelAndView.setViewName("itemsList"); return modelAndView; }
6. 处理器(Handler)配置
<1>Handler由springMVC管理,在springmvc.xml中进行配置。
<!-- 配置Handler 由于上面使用了BeanNameUrlHandlerMapping处理映射器,name配置为url --><bean id="itemController1" name="/itemList.action" class="cn.itcast.springmvc.first.ItemController1"></bean><!-- handler2 --> <bean id="itemController2" class="cn.itcast.springmvc.first.ItemController2"></bean><!--简单url映射 集中配置bean的id对应 的url --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/itemsTest1.action">itemController1</prop> <prop key="/itemsTest2.action">itemController2</prop> </props> </property></bean>
<2>使用注解配置
<!-- 注解的handler,单个配置 --><!-- <bean class="cn.itcast.springmvc.first.ItemController3"/> --><!-- 使用spring组件扫描 --><context:component-scan base-package="cn.itcast.springmvc.first" />
建议使用组件扫描,组件扫描可以扫描@Controller、@Service、@component、@Repsitory等
7. 视图解析器(ViewResolver)配置
<!-- 配置视图解析器 要求将jstl的包加到classpath --><!-- ViewResolver --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /></bean>
- springMVC_基本开发及配置
- Zookeeper的安装配置及基本开发
- Zookeeper的安装配置及基本开发
- android开发配置及基本的编译配置
- NDK开发环境配置及HelloJni基本开发步骤
- android开发环境配置及基本结构关心
- 使用Cordova进行iOS开发 (环境配置及基本用法)
- jeesite开发平台初学-业务表配置及基本认识
- 开发环境配置及基本运行原理讲解
- Java开发之Maven的基本配置及个人理解
- 基本开发配置
- 基本开发环境配置
- Ardunio开发基本配置
- 企业常用框架Springmvc_基于注解+xml配置方式实现
- iOS开发-开发百度地图1-iOS SDK 3.0.0-基本地图的配置及实现
- Apache 简介及基本配置
- Apache 简介及基本配置
- Apache 简介及基本配置
- 小软件公司生存之道
- jdk8中的forEach使用return执行下一次遍历
- FTP自动化C#(Microsoft.Web.Administration)开发
- MySQL各版本的区别
- Problem 8 Largest product in a series
- springMVC_基本开发及配置
- Rescue 3解法:(1.DFS 2. BFS 3.BFS+优先队列模板)
- 【在线演示】专业Excel 组件Spire.XLS 在线演示合集
- 修改MySQL的默认字符编码
- FFMPEG合两帧YUV420P为一帧
- E
- MySQL 慢查询设置和分析工具
- iOS平台Socket编程实践(一)
- vs 工作技巧