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>
@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 ...
随机推荐
- SPDY和HTTP
SPDY 是什么 ? SPDY 是 Google 开发的基于传输控制协议 (TCP) 的应用层协议.SPDY 协议旨在通过压缩.多路复用和优先级来缩短网页的加载时间和提高安全性.(SPDY 是 Spe ...
- C Primer Plus note2
warning: 'mmin' is used uninitialized in this function [-Wuninitialized]| 编译器出现如上图的警告,是因为变量‘mmin’没有初 ...
- 三、Host-Only(仅主机模式)
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模 ...
- Grunt实践之简易教程
以前自己太low了,都没用过高大上的前端自动化打包工具,开发方式也是偏传统的.加入到新的团队后得拼命赶上啊,前端技术更迭太快,各种技术层出不穷,智商都快不够用了.看人家都用的牛逼哄哄的技术,自己还守着 ...
- jQuery ajax调接口时跨域
解决方法提炼 一.jsonp方法 在前端ajax配置jsonp参数,在后台配置jsonp设置,具体方法自行百度 二. 参考同源策略 把前端静态页面放在tomcat内webapp下,和后台文件同目录, ...
- web前端优化之内容优化
前端内容优化主要有以下几条: 1.尽量减少http请求 (1)合并文件,把多个css文件合并在一起: (2)css Sprites,把css相关的background元素进行背景图绝对定位: (3)图 ...
- 26_线程池_ThreadPoolExecutor
[ThreadPoolExecutor简述] 无论是Executors类的newFixedThreadPool().newSingleThreadExecutor(),还是newCachedThrea ...
- BitmapFactory 读取图片方法总结
①decodeFile(java.lang.String pathName) ②decodeResource(android.content.res.Resources res, int id ...
- swoole 创建web服务器
http_server.php $http = new swoole_http_server("0.0.0.0", 9501); // 请求监听事件 $http->on('r ...
- c# 依赖注入之---反射(转)
详细请看http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html 定义一个接口,和两个类(实现该接口) IButton: using ...