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 ...
随机推荐
- Java复习第二天
Day04 1.switch语句的格式?针对格式的解释?以及注意事项? (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ...
- 1.Windows服务-->添加一个简单的服务
Windows服务应用程序是一种需要长期运行的应用程序,它对于服务器环境特别适合.它没有用户界面,并且也不会产生任何可视输出.任何用户消息都会被 写进Windows事件日志.计算机启动时,服务会自动开 ...
- C# wx获取token基本方法
#region 请求Url,不发送数据 /// <summary> /// 请求Url,不发送数据 /// </summary> public static string Re ...
- 提示"No 'Access-Control-Allow-Origin' header"及Spring 中解决跨域问题
问题描述 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://12 ...
- C# WCF服务入门
之前在公司用的服务端是wcf写的,但是没有深入研究,最近找工作,面试的时候好多人看到这个总提问,这里做个复习 就用微软官方上的例子,搭一个简单的wcf服务,分6步 1 定义服务协定也就是契约,其实就是 ...
- wampserevr安装redis和mongo扩展
1.下载redis对应的扩展.dll文件(php_redis.dll)和php_igbinary.pdb文件以及php_mongo.dll文件(对应版本)慢慢试 2.把找好的对应好的版本放到 D:\p ...
- IntelliJ IDEA16 热部署,解决每次修改java文件就得重启tomcat的问题
这样就可以了....
- JQ中的FormData对象 ajax上传文件
HTML代码: <form enctype="multipart/form-data" method="POST" name="searchfo ...
- 小小的js
//安全登陆不允许iframe嵌入 if (window.top !== window.self) { window.top.location = window.location; } 使用filte ...
- 任务十三:零基础JavaScript编码(一)
任务目的 JavaScript初体验 初步明白JavaScript的简单基本语法,如变量.函数 初步了解JavaScript的事件是什么 初步了解JavaScript中的DOM是什么 任务描述 参考以 ...