controller注解
使用controler注解就可以将一个普通的java类变成一个servelet
例如
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
public class First {
@RequestMapping(value = "/helloWorld")
//使用此注解就可以拦截,项目根路径 + 你输入的value值 ,的请求
//例如上面写的例子,就可以拦截下来,http://localhost:8080/demoSpringMvc/helloWorld
public void login() {
System.out.println("hello");
}
}
运行结果
RequestMapping注解
value属性
我们可以配置value属性,来拦截 项目根路径 + 你输入的value值 ,的请求
例如
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
public class First {
@RequestMapping(value = "/helloWorld")
//使用此注解就可以拦截,项目根路径 + 你输入的value值 ,的请求
//例如上面写的例子,就可以拦截下来,http://localhost:8080/demoSpringMvc/helloWorld
public void login() {
System.out.println("hello");
}
}
就可以拦截下来,http://localhost:8080/demoSpringMvc/helloWorld请求
数组形式
value还可以变成数组形式,来实现,一个方法拦截多个请求
@Controller
public class First {
@RequestMapping(value = {"/helloWorld","/login"})
//使用此注解就可以拦截,项目根路径 + 你输入的value值 ,的请求
//例如上面写的例子,就可以拦截下来,http://localhost:8080/demoSpringMvc/helloWorld
public void login() {
System.out.println("hello");
}
}
运行结果
模式匹配
我们还可以在value属性中使用到模式匹配,例如使用*,{}等等
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
@Scope("prototype")//指定单例模式或多例模式
public class First {
@RequestMapping(value = {"/demo/{id}/demo/{name}"})
//使用此注解就可以很好的支持resultful风格,从url处就可以获取相应的数据
public void RequestMappingDemo(@PathVariable(value="id") int id,
@PathVariable(value="name") String name) {
System.out.println("id = " + id + " name: " + name);
}
}
还可以使用模糊匹配的形式
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
@Scope("prototype")//指定单例模式或多例模式
public class First {
@RequestMapping("/*/demo2")
public void demo2(){
System.out.println("demo2");
}
}
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
@Scope("prototype")//指定单例模式或多例模式
public class First {
@RequestMapping("/*123/demo2")
public void demo3(){
System.out.println("demo3");
}
}
method属性
使用这个属性我们可以配置此方法接受什么样的请求,例如get,post,delete等等(默认所有方式都可以拦截)
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
public class First {
@RequestMapping(value = {"/helloWorld","/login"},method = RequestMethod.POST)
//使用此注解就可以拦截,项目根路径 + 你输入的value值 ,的post请求
//例如上面写的例子,就可以拦截下来,http://localhost:8080/demoSpringMvc/helloWorld
public void login() {
System.out.println("hello");
}
}
当我们以get方式请求时,就不会被拦截进行处理而是提示405错误
我们选择浏览器的编辑重发功能
改成post方式进行访问
访问成功
同样这个属性也可以变成数组的形式来响应多种请求
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
public class First {
@RequestMapping(value = {"/helloWorld","/login"},method = {RequestMethod.POST,RequestMethod.DELETE})
//使用此注解就可以拦截,项目根路径 + 你输入的value值 ,的请求
//例如上面写的例子,就可以拦截下来,http://localhost:8080/demoSpringMvc/helloWorld
public void login() {
System.out.println("hello");
}
}