步骤一:编写web.xml文件,主要代码如下:<servlet>

Java代码

  1. <servlet-name>spmvc</servlet-name>
  2. <servlet-class>
  3. org.springframework.web.servlet.DispatcherServlet
  4. </servlet-class>
  5. <load-on-startup>1</load-on-startup>
  6. </servlet>
  7. <servlet-mapping>
  8. <servlet-name>spmvc</servlet-name>
  9. <url-pattern>*.do</url-pattern>
  10. </servlet-mapping>

步骤二:编写后端控制器,主要代码如下:package com.asm;

Java代码

  1. //...省略导入的相关类
  2. @Controller
  3. public class SimpleAnnotationControl {
  4. @RequestMapping("/anno.do")
  5. public ModelAndView show() {
  6. ModelAndView mav = new ModelAndView("anno");
  7. mav.addObject("message", "welcome annotation demo");
  8. return mav;
  9. }
  10. }

步骤三:编写springmvc-servlet.xml配置文件,主要代码如下:<?xml version="1.0" encoding="UTF-8"?>

Xml代码

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xsi:schemaLocation="
  5. http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  6. http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  7. <context:component-scan base-package="com.asm" />
  8. <bean id="irViewResolver"        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  9. <property name="prefix" value="/WEB-INF/page/" />
  10. <property name="suffix" value=".jsp" />
  11. </bean>
  12. </beans>

说明:在spring中,通过配置一个自动扫描器,可以自动扫描到某个范围下的所有组件,这些组件必须是标记有特定注解,比较常用的特定注解有@Component、@Repository、 @Service和@Controller。比如这里就会把SimpleAnnotationControl类纳入spring容器管理。关于spring自动扫描管理bean可以参它的相关文档。

步骤四:在WEB-INF/page目录下编写anno.jsp页面,主要代码如下:
  <body>

欢迎来到注解页面<br/>

${message}

</body>

步骤五:启动服务器,访问…/anno.do完成测试。

简析注解:在本实例中,我们使用了两个注解:

一是Controller注解,此注解的作用是把控制器SimpleAnnotationControl纳入spring容器管理;

二是@RequestMapping注解。

下面我们重点分析此注解:

在本例中,我们使用 @RequestMapping("/anno.do")这种简写形式,实际它的完整形式应为:@RequestMapping(value = "/anno.do")。

value属性指明了它的映射路径,比如这里的映射路径为anno.do。

此注解除了value属性外,还有如下属性:method、headers、params。

@RequestMapping(value = "/anno.do", method = RequestMethod.GET)

此配置说明只有GET请求才能访问anno.do。可以增加如下POST请求代码测试:

<form action="<%=request.getContextPath() %>/anno.do" method="post">

<input type="submit" value="POST方式">

</form>

发现此种POST请求方式是不能访问anno.do得

@RequestMapping(value = "/anno.do", params = { "username=admin", "password=123456" })

此配置说明只有附带正确的请求参数才能访问,比如在这里只能是…/anno.do?username=admin&password=123456才能正确访问。

spring注解理解的更多相关文章

  1. 理解 Spring 注解编程模型

    理解 Spring 注解编程模型 Spring 中有一个概念叫「元注解」(Meta-Annotation),通过元注解,实现注解的「派生性」,官方的说法是「Annotation Hierarchy」. ...

  2. 深入理解Spring注解机制(一):注解的搜索与处理机制

    前言 众所周知,spring 从 2.5 版本以后开始支持使用注解代替繁琐的 xml 配置,到了 springboot 更是全面拥抱了注解式配置.平时在使用的时候,点开一些常见的等注解,会发现往往在一 ...

  3. 【Spring注解驱动开发】自定义组件如何注入Spring底层的组件?看了这篇我才真正理解了原理!!

    写在前面 最近,很多小伙伴出去面试都被问到了Spring问题,关于Spring,细节点很多,面试官也非常喜欢问一些很细节的技术点.所以,在 Spring 专题中,我们尽量把Spring的每个技术细节说 ...

  4. spring 注解的优点缺点

    注解与XML配置的区别 注解:是一种分散式的元数据,与源代码耦合. xml :是一种集中式的元数据,与源代码解耦. 因此注解和XML的选择上可以从两个角度来看:分散还是集中,源代码耦合/解耦. 注解的 ...

  5. Spring注解【非单例】

    花了至少一整天的时间解决了这个问题,必须记录这个纠结的过程,问题不可怕,思路很绕弯. 为了能说清楚自己的问题,我都用例子来模拟. 我有一个类MyThread是这样的: @Service public ...

  6. 转-Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable

    转-http://snowolf.iteye.com/blog/1628861/ Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariab ...

  7. Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable (转)

    最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考: Spring 注解学习手札(一 ...

  8. Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier、@scope

    以下内容摘自部分网友的,并加上了自己的理解 @Service用于标注业务层组件(我们通常定义的service层就用这个) @Controller用于标注控制层组件(如struts中的action.Sp ...

  9. Spring 注解(一)Spring 注解编程模型

    Spring 注解(一)Spring 注解编程模型 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring 注解系列 ...

随机推荐

  1. Java基础知识强化73:正则表达式之分割功能

    1. 分割功能: 使用String的split方法,split方法:根据给定正则表达式的匹配拆分字符串.如下: public String[] split(String regex): 2.  案例: ...

  2. MySQL(12):windows下解决mysql忘记密码

    mysql有时候忘记密码了怎么办?我给出案例和说明!一下就解决了!    Windows下的实际操作如下 : 1. 关闭正在运行的MySQL.  2. 打开DOS窗口,转到mysql\bin目录. 3 ...

  3. 大数据笔记03:大数据之Hadoop的安装

    1.安装Hadoop (1)准备Linux环境 (2)安装JDK (3)配置Hadoop 2.准备Linux环境 (1)我们用户可能都是使用Windows环境,一般用户都是先安装虚拟机,然后在虚拟机上 ...

  4. nginx 配置轮询服务

    通常我们应用nginx做代理时,用到它的轮训服务 #设置轮询名称 upstream zyy{ server 127.0.0.1:8080  #本机的apache服务 } server { listen ...

  5. ssh key报but this does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!错误

    在/etc/hosts 文件加上对方的主机名  ip地址,可以ping通主机名即可.

  6. nginx+tomcat+memcached搭建服务器集群及负载均衡

    在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+ngin ...

  7. 传输层-UDP

    传输层构建在网络层之上,传输层提供端口到端口之间的通讯. 传输层通过端口号来标识一个端口,不同于网卡,端口是逻辑上的概念.传输层的端口为16个比特(bit)长度,即最多能表示65 536个端口,端口号 ...

  8. json格式初涉

    json用{}表示json对象,[]表示数组,里面以值对的方式来存储信息 var jsondata='{"staff": [{"name":"jim& ...

  9. 转载:Java连接MySQL 数据库的正确操作流程

    转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html       以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例 ...

  10. js的兼容性问题

    innerHTML和innerTEXT的使用问题 <html xmlns="http://www.w3.org/1999/xhtml"> <head> &l ...