1.第一步,在spring 框架配置网站,配置好web项目框架并且下载下来。对应地址:
第二步,在intellj中导入配置完成的项目框架。
第三步,添加控制层的Controller类:
package com.nowcoder.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
//Controller注解的目的是把当前类交给IOC容器管理,即注册bean
@org.springframework.stereotype.Controller
public class Controller {
//该注解的主要目的是把http的请求映射到控制器的处理方法上,通常结合controller注解使用
@RequestMapping("/")
//@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中
@ResponseBody
public String index(){
return("HelloWorld!");
}
}
run以后,打开本机对应的网络端口,显示为:
参考文章:
http://www.iteye.com/news/32657
https://blog.csdn.net/bigtree_3721/article/details/52091522
https://www.cnblogs.com/daimajun/p/7152970.html
这几篇文章中都有很详细的三个注解的作用以及使用语法,场景。可以参考,如果想要深入了解,建议去spring官方文档查看:
https://docs.spring.io/spring-boot/docs/current/reference/html/index.html
2.下面我们体验另一个作用,我们将代码换为:
package com.nowcoder.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@org.springframework.stereotype.Controller
public class Controller {
//此处的参数发生了改变,添加了一个url标签
@RequestMapping(path={"/","xxx"})
@ResponseBody
public String index(){
return("HelloWorld!");
}
}
使用新添加的标签来访问端口:
可以看到,返回了同样的结果。
3.接着我们体验另一个功能,把path换成value
还是返回了一样的结果(都一样,此处就不上图了)。
5.那么为什么可以采用这样的方法呢?是因为requestmapping源码中的方法:
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
//默认的不添加value或者path时候
String name() default "";
//可以用path作为标签,添加多个url请求路径
@AliasFor("path")
String[] value() default {};
//同样也可以用value作为标签
@AliasFor("value")
String[] path() default {};
RequestMethod[] method() default {};
String[] params() default {};
String[] headers() default {};
String[] consumes() default {};
String[] produces() default {};
}
5.我们接着体验下将参数传进url中
package com.nowcoder.controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@org.springframework.stereotype.Controller
public class Controller {
//设置key和id路径
@RequestMapping("/profile/{key}/{id}")
@ResponseBody
//添加路径变量key和id
public String index(@PathVariable("key") String key, @PathVariable("id") int id){
//将key和id的值返回
return String.format("Key%s,Id%s",key,id);
}
}
结果为:
6.接着我们加入@RequestParam
package com.nowcoder.controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@org.springframework.stereotype.Controller
public class Controller {
@RequestMapping("/profile/{key}/{id}")
@ResponseBody
public String index(@PathVariable("key") String key, @PathVariable("id") int id,
@RequestParam(value="bianliang1", defaultValue = "se") String bianliang1,
@RequestParam(name="bianliang2", defaultValue = "2") int bianliang2){
return String.format("Key%s,Id%s,Bianliang1=%s,bianliang2=%s",key,id,bianliang1,bianliang2);
}
}
返回结果:
。
这部分都是一些参数传递过程,都是最基本的方法。下一部分,我们将采用模板的方式返回结果。