1、springMVC的DispatcherServlet前段控制器配置,如下图所示在web.xml中配置如下内容:

2、在spring配置文件中,配置处理器适配器HandlerAdapter和映射器HandlerMapping

<!-- HandlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

BeanNameUrlHandlerMapping:表示将请求的URL和Bean的name映射,如URL为 “上下文/hello”,则Spring配置文件必须有一个名字为“/hello”的Bean,上下文默认忽略。

SimpleControllerHandlerAdapter:表示所有实现了org.springframework.web.servlet.mvc.Controller接口的Bean可以作为Spring Web MVC中的处理器。如果需要其他类型的处理器可以通过实现HadlerAdapter来解决。

3、在spring配置文件中配置视图解析器ViewResolver

<!-- ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>

viewClass:JstlView表示JSP模板页面需要使用JSTL标签库,classpath中必须包含jstl的相关jar包;

prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”;

4、编写一个Controller

package cn.javass.chapter2.web.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloWorldController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
//1、收集参数、验证参数
//2、绑定参数到命令对象
//3、将命令对象传入业务对象进行业务处理
//4、选择下一个页面
ModelAndView mv = new ModelAndView();
//添加模型数据 可以是任意的POJO对象
mv.addObject("message", "Hello World!");
//设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
mv.setViewName("hello");
return mv;
}
}

org.springframework.web.servlet.mvc.Controller:页面控制器/处理器必须实现Controller接口,注意别选错了;后边我们会学习其他的处理器实现方式;

public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) :功能处理方法,实现相应的功能处理,比如收集参数、验证参数、绑定参数到命令对象、将命令对象传入业务对象进行业务处理、最后返回ModelAndView对象;

ModelAndView:包含了视图要实现的模型数据和逻辑视图名;“mv.addObject("message", "Hello World!");

”表示添加模型数据,此处可以是任意POJO对象;“mv.setViewName("hello");”表示设置逻辑视图名为“hello”,视图解析器会将其解析为具体的视图,如前边的视图解析器InternalResourceVi。wResolver会将其解析为“WEB-INF/jsp/hello.jsp”。

配置controller控制器

<!-- 处理器 -->
<bean name="/hello" class="cn.javass.chapter2.web.controller.HelloWorldController"/>

name="/hello":前边配置的BeanNameUrlHandlerMapping,表示如过请求的URL为 “上下文/hello”,则将会交给该Bean进行处理。

原创地址:http://jinnianshilongnian.iteye.com/blog/1594806

最新文章

  1. Jquery网页元素里面的操作以及JSON
  2. UML类图详解
  3. Shodan新手入坑指南
  4. ruby 编译安装,gem国内源ruby.taobao.org
  5. Java-TCP Socket编程
  6. 真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService
  7. 【POJ1182】 食物链 (带权并查集)
  8. 记一次ios使用OAuth 2.0写的接口获取token的小错
  9. java面试题大全-基础方面
  10. keil MDK编译器警告和错误详解(不定期更新)
  11. CentOS Linux 语言环境设置
  12. DBMS_LOB包的使用
  13. android网络编程之HttpUrlConnection的讲解--POST请求
  14. Python爬虫(二十)_动态爬取影评信息
  15. Git学习指北
  16. java线程学习之synchronized关键字
  17. sublime text3 replace和反向引用
  18. unzip文件解压
  19. phalcon bug: model的findFirst会自动忽略一些空格
  20. apache2.2服务无法启动 发生服务特定错误:1 的解决办法 (windows服务错误 日志查看方法)

热门文章

  1. eclipse 创建聚合maven项目(转)
  2. ffmpeg源码分析之媒体打开过程
  3. echarts —— 绘制横向柱状图(圆角、无坐标轴)
  4. 学习记录--JVM内存分析
  5. Dart中的匿名方法与自执行方法
  6. 使用iframe框架时,实现子页面内跳转到整个页面,而不是在子页面内跳转
  7. celery的简单使用
  8. HashSet怎样保证元素不重复
  9. ubuntu卸载/更新Cmake
  10. drf 第一节