springmvc(3)注解
有疑问可以参考博主其他关于spring mvc的博文
此时直接进行代码的实现
一般的步骤:
-加入jar包
-配置DispatcherServlet
-加入Spring MVC配置文件
-编写请求的处理器
-视图
创建web工程:

加入jar包

web.xml文件
<!-- 配置DispatcherServlet -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置初始化参数 -->
<!-- 配置 DispatcherServlet 的一个初始化参数: 配置 SpringMVC 配置文件的位置和名称 -->
<!--
实际上也可以不通过 contextConfigLocation 来配置 SpringMVC 的配置文件, 而使用默认的.
默认的配置文件为: /WEB-INF/<servlet-name>-servlet.xml
简单的列子:在WEB-INF文件夹下springDispatcherServlet-servlet.xml,init就不需要在配置了
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup></load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
springmvc.xml以及所需要的类

springmvc.xml
<!-- 配置自动扫描的包 -->
<context:component-scan base-package="com.MrChengs.A"></context:component-scan>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
HelloWord.java
//自动扫描
@Controller
public class HelloWord {
//返回值通过视图解析器解析为实际的物理逻辑视图,InternalResourceViewResolver解析器
//<property name="prefix" value="/WEB-INF/views/"></property>
//<property name="suffix" value=".jsp"></property>
//通过前缀 prefix + 返回值 + 后缀
// == /WEB-INF/views/ + success + .jsp //使用注解来映射请求url
@RequestMapping("/helloword")
public String say(){
System.out.println("hello");
return "success";
}
}
这里说明需要在路径下建立相关的 文件以及路径:

<body>
<h4>success</h4>
</body>
在index.jsp
<body>
<a href="helloword">helloword</a>
</body>
得到:注意看请求的url


@Controller
@RequestMapping("/springmvc")
public class TestRequestMapping { @RequestMapping("/RequestMapping")
public String RequestMapping(){
System.out.println("RequestMapping");
return "success";
}
}
在index,jsp中:
<a href="springmvc/RequestMapping">testMethod</a>
在运行之后点击超链接,控制台会显示,主要看路径:

具体可看图的解释:

@RequestMapping(value="/RequestMethod",method=org.springframework.web.bind.annotation.RequestMethod.POST)
public String RequestMethod(){
System.out.println("RequestMethod");
return "success";
}
index.jsp中:
<form action="springmvc/RequestMethod" method="post">
<input type="submit" value="submit">
</form>

params
@RequestMapping(value="/paramsAndHeaders",
params={"user","age!=20"})
public String ParamesHeaders(){
return "success";
}
index.jsp
<a href="springmvc/paramsAndHeaders">paramsAndHeaders</a>

header:

@RequestMapping("/antpath/*/ant")
public String AntPath(){
return "success";
}
index.jsp:
<a href="springmvc/antpath/mvcmmc/ant">Ant</a>

TestRequestMapping.java
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable(value="id") int id){
System.out.println("testPathVariable:" + id);
return "success";
}
index.jsp
<a href="springmvc/testPathVariable/20">testPathVariable</a>

需要在web.xml配置:
<!-- 配置org.springframework.web.filter.HiddenHttpMethodFilter.class -->
<!-- 可以把POST请求转为delete/post -->
<filter>
<filter-name>filter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
java类中:
@RequestMapping(value="/test/{id}",method=org.springframework.web.bind.annotation.RequestMethod.GET)
public String testGet(@PathVariable(value="id") int id){
System.out.println("GET:" + id);
return "success";
}
@RequestMapping(value="/test",method=org.springframework.web.bind.annotation.RequestMethod.POST)
public String testPOST(){
System.out.println("POST:");
return "success";
}
@RequestMapping(value="/test/{id}",method=org.springframework.web.bind.annotation.RequestMethod.DELETE)
public String testDelete(@PathVariable(value="id") int id){
System.out.println("DELETE:" + id);
return "success";
}
@RequestMapping(value="/test/{id}",method=org.springframework.web.bind.annotation.RequestMethod.PUT)
public String testPUT(@PathVariable(value="id") int id){
System.out.println("PUT:" + id);
return "success";
}
index.jsp
<a href="springmvc/test/1">GET</a>
<br>
<form action="springmvc/test" method="post">
<input type="submit" value="POST">
</form>
<br>
<form action="springmvc/test/1" method="post">
<input type="hidden" name="_method" value="DELETE">
<input type="submit" value="DELETE">
</form>
<br>
<form action="springmvc/test/1" method="post">
<input type="hidden" name="_method" value="PUT">
<input type="submit" value="PUT">
</form>

@RequestMapping("/testRequestParam")
public String testRequestParam(@RequestParam(value="username",required=false) String username,
@RequestParam(value="age") int age){
System.out.println("username:" + username + "--age:" + age);
return "success";
}
index.jsp
<a href="springmvc/testRequestParam?username=MrChang&age=22">testRequestParam</a>

aaarticlea/png;base64,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" alt="" /> @RequestMapping("/RequestHeader")
public String testRequestHeader(@RequestHeader(value="Accept")String l){
System.out.println(l);
return "success";
}
index.jsp
<a href="springmvc/RequestHeader">RequestHeader</a>

TestRequestMapping.java
@RequestMapping("/testpojo")
public String testtestpojo(User user){
System.out.println(user);
return "success";
}
User.java
public class User {
private String username;
private String password;
private String email;
private Address address;
}
Address.java
public class Address {
private String city;
}
index.java
<form action="springmvc/testpojo" method="post">
username:<input type="text" name="username">
<br>
password:<input type="password" name="password">
<br>
email:<input type="text" name="email">
<br>
city:<input type="text" name="address.city">
<input type="submit" value="submit">
</form>


使用 Servlet API 作为
TestRequestMapping.java
@RequestMapping("/testServletAPI")
public String testServletAPI(HttpServletRequest request,
HttpServletResponse response){
System.out.println("request:" + request + "-response:" + response);
return "success";
}
<a href="springmvc/testServletAPI">testServletAPI</a>
request:org.apache.catalina.connector.RequestFacade@7a434d60-
response:org.apache.catalina.connector.ResponseFacade@addea0e
springmvc(3)注解的更多相关文章
- SpringMVC常用注解實例詳解3:@ResponseBody
我的開發環境框架: springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...
- SpringMVC常用注解實例詳解2:@ModelAttribute
我的開發環境框架: springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...
- springMVC的注解详解
springmvc常用注解标签详解 1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业 ...
- springmvc常用注解与类型转换
springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...
- springMvc的注解注入方式
springMvc的注解注入方式 最近在看springMvc的源码,看到了该框架的注入注解的部分觉的有点吃力,可能还是对注解的方面的知识还认识的不够深刻,所以特意去学习注解方面的知识.由于本人也是抱着 ...
- SpringMVC全注解
SpringMVC全注解不是你们那么玩的 前言:忙了段时间,忙得要死要活,累了一段时间,累得死去活来. 偶尔看到很多零注解配置SpringMVC,其实没有根本的零注解. 1)工程图一张: web.xm ...
- SpringMVC常用注解@Controller,@Service,@repository,@Component
SpringMVC常用注解@Controller,@Service,@repository,@Component controller层使用@controller注解 @Controller 用于标记 ...
- 一 : springmvc常用注解
springmvc常用注解详解1.@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层 ...
- 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s
1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2 spring-mv ...
- 转:springmvc常用注解标签详解
Spring5:@Autowired注解.@Resource注解和@Service注解 - IT·达人 - 博客园--这篇顺序渐进,讲得超级好--此人博客很不错http://www.cnblogs.c ...
随机推荐
- [转]error MSB4018: The "GenerateResource" task failed unexpectedly
本文转自:https://github.com/Microsoft/msbuild/issues/364 After uninstall Visual Studio 2015 Update 1 RC ...
- Splunk数据处理
0.提要 本篇主要从技术层面针对Splunk Enterprise中关于数据处理的概念.过程与部件进行了概要性总结. 1.数据管理基本概念 索引(index):Splunk用于存储事件的数据仓库: 索 ...
- 生成自签名证书-开启https
1.生成CA证书 # 生成 CA 私钥 openssl genrsa -out ca.key 2048 # X.509 Certificate Signing Request (CSR) Manage ...
- Spring学习笔记:Spring动态组装打印机
一.如何开发一个打印机 1.可灵活配置使用彩色魔盒或灰色魔盒 2.可灵活配置打印页面的大小 二.打印机功能的实现依赖于魔盒和纸张 三.步骤: 1.定义墨盒和纸张的接口标准 package cn.pri ...
- 三个缓存数据库Redis、Memcache、MongoDB
>>Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环境 ...
- 任意表格(table)实现拖动列(column)改变列大小
直接上代码吧,原理可以看我上一篇博文.本实现基于jquery,完美实现拖动改变表格的列大小功能,只需将代码放置在你页面的底部即可(jquery必须先引入). $(function () { var i ...
- Web前端面试指导(十一):样式导入有哪些方式?
样式导入方式 link import 使用方式 link的使用 <link href="index.css" rel="stylesheet"> i ...
- 学习CSS制作菜单列表,举一反三
1.普通的二三级菜单 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&qu ...
- 把getJson() 设置为同步执行
因为业务需求,需要在获取到json 数据后,对数据进行处理. 这时候,我们需要把getJson() 的方法设置为同步 $.ajaxSettings.async = false; getJson() 方 ...
- sql-syscolumns,INFORMATION_SCHEMA.columns,sysobjects
//计算表tb_Blog的字段个数 select count(*) from syscolumns where id=object_id('tb_Blog') 获取指定表的所有字段和字段类型 SELE ...