第一步:新建案例工程:

aaarticlea/png;base64,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" alt="" width="316" height="426" />

这个案例用到的是1.com.guigu.shen.Action的包里面的文件(Helloaction.java是控制类,springmvc_005.xml是springmvc的配置文件)。2.springmvc.xml。3.index.xml。4.web.xml。5.jsp/success.jsp

第一步:先写web.xml;

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>SpringMvc_10day_self</display-name>
<!-- Spring提供了一个Filter专门用来解决Post提交中文的乱码问题 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter </filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <servlet>
<!--这个名字可以随便取得,但是这个名字取了之后,以后在 WEB-INF下面创建SpirngMVC的配置文件是,命名必须以这个开头, 所以这里取名叫做DispatcherServlet,那么之后的xml文件取名必须为DispatcherServlet-servlet.xml(一个字都不能差) -->
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 通知DispatcherServlet去指定目录下找到springmvc.xml配置文件 -->
<!--
注意这里的 <param-name>contextConfigLocation</param-name>一个字母都不能有错
一旦有错就会去WEB-INF下面去找
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
</web-app>

第二步:写spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation=" http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
<import resource="com/guigu/shen/Action5/springmvc_005.xml"/>
</beans>

第三步:写com/guigu/shen/Action5/springmvc_005.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
<!-- 控制器(程序员)(必须配置) -->
<context:component-scan base-package="com.guigu.shen.Action5"/>
<!-- <bean name="/hello.action" class="com.guigu.shen.Action5.HelloAction"></bean> --> <!-- 基于注解的映射器(可选)
这个类和以前的xml方式的类不同,专门是注解用的
-->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <!-- 基于注解的适配器(可选)
这个类和以前的xml方式的类不同,专门是注解用的
-->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> <!-- 视图解析器(可选)
这个类和以前的xml方式的类一样
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> </beans>

第四步:写HelloAction.java控制器。

package com.guigu.shen.Action5;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; /*
* 单例的控制器(由程序员去写)
* 以前我们写控制的做法是implends Controller接口,
* 或者extends Abs...抽象类
* 现在我不想这么写了,用注解来做,写一个@Controller这样就代表这个是一个控制器。这样解析这个类
* 时就知道他是控制器了。
*
*
*/
@Controller
public class HelloAction { public HelloAction() {
System.out.print(this.hashCode());
} /*
*
* @RequestMapping(value="/hello")表示这个方法是用来响应/hello.action请求的
* 按住alt+/就是跳出来注解里面的参数。只要是/hello.action的请求都会交给HelloAction中的
* helloMethod方法来处理。
*
*/
@RequestMapping(value="/hello") public String helloMethod(Model model) throws Exception
{
System.out.println("Hello:helloMethod()");
//往Model中封装数据。
model.addAttribute("message", "这是hello请求");
return "jsp/success.jsp";
} /*
*
* @RequestMapping(value="/bey.action")表示这个方法是用来响应/bey.action请求的
* 按住alt+/就是跳出来注解里面的参数。只要是/bey.action的请求都会交给HelloAction中的
* beyMethod方法来处理。
*
*/
@RequestMapping(value="/bey.action")
//@RequestMapping(value="/hello")
public String beyMethod(Model model) throws Exception
{
System.out.println("Hello:helloMethod()");
//往Model中封装数据。
model.addAttribute("message", "这是bye请求");
return "jsp/success.jsp";
} }

第五步:编写success.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> <body>
Success. <br>
${requestScope.message} </body>
</html>

最后测试一下:输入http://127.0.0.1:8080/SpringMvc_10day_self/bey.action

结果:跳转到success.jsp 并输出“这是bye请求”内容。

输入http://127.0.0.1:8080/SpringMvc_10day_self/hello.action

结果:跳转到success.jsp 并输出“这是hello请求”内容。

对上面的案例流程说明一下:

1.浏览器发出请求,比如hello.action

2服务器根据web.xml的配置来到了DispatcherServlet.并且DispatcherServlet把这个请求给了映射器,映射器会去springmvc_005.xml中去寻找控制器类,到了那里发现了

<context:component-scan base-package="com.guigu.shen.Action5"/>知道了这是注解,所以马上去"com.guigu.shen.Action5"包下面去寻找有没有被

@Controller注释过的类,发现有的,然后找到了HelloAction类。然后去这个类里面去找被注解了@RequestMapping(value="/hello")的方法,然后找到了helloMethod(Model model)方法然后去执行这个方法。执行好之后返回一个Model,然后把这个Model交给视图解析器去解析,解析好之后在交给DispatcherServlet,最后DispatcherServlet根据解析出来的网址跳转到success.jsp 并输出“这是hello请求”内容。

问题:

1.刚开始的时候我在springmvc_005.xml是这么配置的。

<context:component-scan base-package="com.guigu.shen.Action5"/>
<bean name="/hello.action" class="com.guigu.shen.Action5.HelloAction"></bean>
这两个一起配置,然后就会出错,说是重复了。你想啊第一句是通过注解的方式去找了。第二句直接通过xml的方式去找了,相当于去找了两次,当然会冲突啊。 2. 把<context:component-scan base-package="com.guigu.shen.Action5"/>去掉。
保留<bean name="/hello.action" class="com.guigu.shen.Action5.HelloAction"></bean>
我在想为什么也会成功啊?照理说,我在HelloAction类里面的方法也是用注解去配的啊,我都把注解那句去掉了,保留了xml的方式,之前次采用xmL的方式时,里面的
执行方法是有特定写法的?答案:<context:component-scan base-package="com.guigu.shen.Action5"/>这句只是告诉系统前去com.guigu.shen.Action5这个包里面寻找
被@Contolrr注解过的类。至于里面的 @RequestMapping(value="/hello") 这些注解当然可以使用啊。然后只是把寻找里面控制类的任务直接由
<bean name="/hello.action" class="com.guigu.shen.Action5.HelloAction"></bean>去完成了罢了。并不影响 @RequestMapping(value="/hello")注解的寻找。
 

10SpringMvc_springmvc快速入门小案例(注解版本)的更多相关文章

  1. 02SpringMvc_springmvc快速入门小案例(XML版本)

    这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图:

  2. struts2框架快速入门小案例

    struts2快速入门: index.jsp------>HelloAction--------->hello.jsp struts2流程 1.导入jar包 struts2的目录结构: a ...

  3. Hibernate的介绍及入门小案例

    1.Hibernate的诞生 在以前使用传统的JDBC开发应用系统时,如果是小型应用系统,并不觉得有什么麻烦,但是对于大型应用系统的开发,使用JDBC就会显得力不从心,例如对几十,几百张包含几十个字段 ...

  4. 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. spring boot入门小案例

    spring boot 入门小案例搭建 (1) 在Eclipse中新建一个maven project项目,目录结构如下所示: cn.com.rxyb中存放spring boot的启动类,applica ...

  6. SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解

    SpringBoot介绍 引言 为了使用ssm框架去开发,准备ssm框架的模板配置 为了Spring整合第三方框架,单独的去编写xml文件 导致ssm项目后期xml文件特别多,维护xml文件的成本也是 ...

  7. SpringBoot_MyBatisPlus快速入门小例子

    快速入门 创建一个表 我这里随便创建了一个air空气表 idea连接Mysql数据库 点击右侧database再点击添加数据库 找到Mysql 添加用户名,密码,数据库最后点击测试 测试成功后在右侧就 ...

  8. React.js入门小案例

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...

  9. Spring中AOP的初窥和入门小案例

    AOP:面向切面编程 AOP的主要作用:是为了程序员更好的关注"业务",专心"做事" 加上双引号的意思:所谓业务,是指他的核心,各行业中需要处理的核心事务,核心 ...

随机推荐

  1. git学习笔记2

    工作区和暂存区 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的github文件 ...

  2. 【原】训练自己的haar-like特征分类器并识别物体(3)

    在前两篇文章中,我介绍了<训练自己的haar-like特征分类器并识别物体>的前三个步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成样本描述文件 3.训练样本 4.目标识别 == ...

  3. Swift学习--微博的基础框架搭建

    学习如何使用Swift写项目 一.搭建微博项目的主框架 1.1--搭建功能模块 1.2--在 AppDelegate 中的 didFinishLaunchingWithOptions 函数,设置启动控 ...

  4. 深入理解java虚拟机(7)---线程安全 & 锁优化

    关于线程安全的话题,足可以使用一本书来讲解这些东西.<Java Concurrency in Practice> 就是讲解这些的,在这里 主要还是分析JVM中关于线程安全这块的内容. 1. ...

  5. netty-socketio使用namespace

    一.简介 netty-socketio中的namespace可以用于区别在相同连接地址下的不同用户,当两个不同的用户打开同一个页面的时候,可以使用namespace用来标记不同用户.例如我们可以在用户 ...

  6. linux基本命令学习笔记

    这个几天在研究linux的常用基本命令.以下是此时间内的幻灯片截图笔记,在这里留个脚印. linux 常用命令 1,命令的基本格式 2,文件处理命令 3,文件搜索命令 4,帮助命令 5,压缩解压缩命令 ...

  7. std::list

    1遍历 std::list<TYPE*>::const_iterator iter_list; for (iter_list = my_list.begin(); iter_list != ...

  8. 详解apache的allow和deny

    今天看了一篇关于apache allow,deny的文章收获匪浅,防止被删,我直接摘过来了,原文地址!!! !http://www.cnblogs.com/top5/archive/2009/09/2 ...

  9. DB String Split sample

    以sqlserver为例进行说明,代码稍加修改,可以用于ORACLE. 字符串的拆分和聚合是数据库开发人员比较常见的任务. 关于字符串的聚合和拆分,sqlserver的标准解决方案是for xml p ...

  10. 谷歌和HTTPS

    谷歌和HTTPS HTTPS被觉得是加强互联网安全的次要部分,而且使用广泛.google近来做了一份关于数据加密近况的陈述. 正在陈述的最新部分中,提到了google以及第三方构造对于数据加密所做的贡 ...