1.创建一个web项目  引入所需要的jar

2.在web.xml文件中配置 核心控制器

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 配置 springmvc的核心控制器
这里的 <servlet-name>springmvc</servlet-name>
springmvc就是规定了 我们springmvc的配置文件的名称
<servlet-name>-servlet.xml
-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
<!-- 为什么不能配置/*
我们打开浏览器 第一次访问 项目名/hello ,会通过我们的handlerMaping找 有没有bean name="/hello"!
有就进入对应的controller进行操作,之后根据controller中返回的ModelAndView ===》hello01!
让试图解析器进行解析 :解析之后 变成了/SpringMVC001/WEB-INF/jsp/hello01.jsp 如果我们配置的是 /* 那么解析之后的路径也会被当成一个Bean name来处理,很显然我们没有这个bean,所以会报错! /: 只会匹配 /login /index 不能匹配 /*.jsp 这样的后缀url
/*:匹配所有的请求 所以我们hello01.jsp 也会被拦截
-->
</servlet-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

web.xml文件

3.在web-inf目录下创建springmvc的核心配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 采用默认的方式 BeanNameUrlHandlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- name="/hello" 用户的请求 class就是我们的Controller处理器-->
<bean name="/hello" class="cn.bdqn.controller.HelloController"/> <!-- 视图解析器 项目名/web-inf/jsp/springmvc.jsp 需要设置前缀 和后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/> </bean> </beans>

springmvc-servlet.xml核心配置文件

4.创建对应的controller文件

public class HelloController extends AbstractController { // 第一个springmvc小例子
/**
* handleRequestInternal():对应struts2的 execute()
* ModelAndView:返回值 需要核心配置文件中的试图解析器 解析
*/
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("第一个springmvc小例子....");
// hello01就是我们返回的视图名称 但是 现在只是一个字符串
return new ModelAndView("hello01");
}
}

HelloController代码

5.在web-inf下新建jsp文件夹,之后再jsp文件夹下面新建hello01.jsp页面即可

6.向前台页面传值

public class HelloController extends AbstractController {// 可以看出来
// 这一个controller中只能有一个方法 /**
* 03.向前台传递一个Map集合
*
*/
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("向前台传递一个Map集合");
Map<String, Object> map = new HashMap<String, Object>();
map.put("1", "大家辛苦1");
map.put("2", "大家辛苦2");
map.put("3", "大家辛苦3");
return new ModelAndView("hello03", "map", map);
} /**
* 02.向前台界面传递值
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("进入了向前台界面传递值的方法..... ");
// request.setAttribute("result", "数据是从后来获取的!");
// 我在返回视图的时候 携带数据
return new ModelAndView("hello02", "result", "数据是从后来获取的!");
}
*/
/** 01.
* handleRequestInternal():对应struts2的 execute()
* ModelAndView:返回值 需要核心配置文件中的试图解析器 解析 @Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("第一个springmvc小例子....");
// hello01就是我们返回的视图名称 但是 现在只是一个字符串
return new ModelAndView("hello01");
}
*/
}

HelloController中增加代码

7.在jsp文件夹下面新增需要的两个界面  其余代码不动

  <body>
获取后台controller中的result值:${result}
</body>

hello02.jsp

<%--引入jstl标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<body> 获取后台controller中的map集合的值: 单独的获取一个值=====》${map["1"]}
<br />
<%-- 使用循环 遍历 map集合 --%>
<c:forEach items="${map}" var="m">
${m.key}=======>${m.value}<br />
</c:forEach> </body>

hello03.jsp

=================修改核心配置文件的位置和名称=======================

 <servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--创建核心配置文件的位置 还可以指定文件的名称 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/springmvc-servlet.xml</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>

只需要修改web.xml中的servlet节点

然后把核心配置文件放到src下面即可!

SpringMVC01的更多相关文章

  1. SpringMVC-01 什么是SpringMVC

    SpringMVC-01 什么是SpringMVC 回顾MVC 1.什么是MVC MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. 是将业务逻辑 ...

  2. 严重: Null component localEngine:type=JspMonitor,name=jsp,WebModule=//localhost/SpringMVC01,J2EEApplication=none,J2EEServer=none

    检查了 Java Build Path, Java Compiler,Project Facts 都确定了版本一致 包括 maven run as →run config 里面的 jdk 和maven ...

  3. springMVC01,使用xml

    unit03_01 unit03_02 springmvc流程图 案例:hello示例 /hello.do --> springmvc --> /WEB-INF/hello.jsp /he ...

  4. SpringMVC-01

    1. 概述 1.1 概念 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 优点 使用简单,开发便捷(相比于Servlet) 灵活性强 项目请求响应架构演进: 软件三层 软件三层 ...

  5. springmvc注解事例

    注解有简化 ,灵活性增强的功能 1.引入jar包 com.springsource.javax.validation-1.0.0.GA.jarcom.springsource.org.aopallia ...

  6. spring mvc 快速入门

    ---------- 转自尚学堂 高淇 --------- Spring  MVC 背景介绍 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC ...

  7. SpringMVC学习(一)

    Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分. Web MVC架构 1.用户发起request请求至控制器(Controller) 控制接收用户请求的数 ...

  8. mybatis, spring, springmvc

    mybatis配置: mybatis-config.xml <configuration> <!-- 作者MyBatis博客: http://legend2011.blog.51ct ...

  9. Spring MVC 学习总结(三)——请求处理方法Action详解

    Spring MVC中每个控制器中可以定义多个请求处理方法,我们把这种请求处理方法简称为Action,每个请求处理方法可以有多个不同的参数,以及一个多种类型的返回结果. 一.Action参数类型 如果 ...

随机推荐

  1. css3之box-sizing

    css盒子模型中包括几种重要的属性,包括margin.border.padding以及content.但浏览器对其盒子模型的解释则有所不痛,启用标准模式还是IE(怪)模式是与当前页面的文档声明相关的. ...

  2. javascript之attribute 和 property

    首先看看这两个单词的英文释义(来自有道词典).先是property: property ['prɔpəti] n. 性质,性能:财产:所有权 英英释义: any area set aside for ...

  3. Linux小知识点汇总

        1.crontab    (1)crontab每10秒执行一次  * * * * * /bin/date >>/tmp/date.txt  * * * * * sleep 10; ...

  4. Java学习----Java程序结构

    1.什么是类 在源文件中程序员自己定义的通过class关键字,自己给类名这样的定义的一个类,而类里包含一个或多个方法 2.什么是源文件 由程序员使用java语言编写的以.java为结尾的一个文件 3. ...

  5. jQuery中的综合动画

    所谓综合动画,就是在链式表达式依次执行相关animate函数,其中的参数是以键值对的方式存在的. 如下示例,就展示了一个基本的综合动画. <!DOCTYPE html PUBLIC " ...

  6. javascript特殊运算符(in,instanceof,typeof,delete,void,逗号)

    in运算符                 in运算符要求其左边的运算数是一个字符串,或可以被转换为字符串,右边的运算数十一个对象或数组.如果该 运算符左边的值是右边对象的一个属性名,则返回true, ...

  7. MYSQL一对多,两表查询合并数据

    select a.askid,a.title,GROUP_CONCAT(b.message SEPARATOR '----') as content from gg_ask as a join gg_ ...

  8. phonegap学习入门

    phonegap 开发入门 PhoneGap官方网站上有详细的入门示例教程,这里,我针对使用PhoneGap进行Android移动应用的开发对其官网的Get Started进行一些介绍.补充. Ste ...

  9. python之sys模块

    38.python的sys模块: 用于提供对Python解释器相关的操作: 1 2 3 4 5 6 7 8 9 sys.argv           命令行参数List,第一个元素是程序本身路径 sy ...

  10. 理解使用static import 机制(转)

    J2SE 1.5里引入了“Static Import”机制,借助这一机制,可以用略掉所在的类或接口名的方式,来使用静态成员.本文介绍这一机制的使用方法,以及使用过程中的注意事项. 在Java程序中,是 ...