实验九:Spring MVC的核心类和注解
一、实验目的
1.了解Spring MVC核心类的作用
2.掌握@Controller注解的使用
3.掌握@RequestMapping注解的使用
4.掌握请求的映射方式
二、实验内容
DispatcherServlet、@Controller注解、@RequestMapping注解应用
三、实验步骤
1.DispatcherServlet
在项目的web.xml文件中配置DispatcherServlet
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2.@Controller注解
为保证SpringMVC能够找到处理器需要在配置文件中声明
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.sun.controller"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
</bean>
</beans>
3.@RequestMapping注解应用
(1)标注在方法上
在src\main\java文件夹中创建com\sun\controller文件夹,在文件夹中创建FirstController类
package com.sun.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class FirstController {
@RequestMapping(value = "/firstController")
public void sayHello(){
System.out.println("hello Spring MVC");
}
}
运行结果:
启动项目后在浏览器输入http://localhost:8089/sy_ch9/firstController
(2)标注在类上
在FirstController类中@Controller后添加
@RequestMapping(value = "/springMVC")
运行结果:
启动项目后在浏览器输入http://localhost:8089/sy_ch9/springMVC/firstController
(3)value属性
在src\main\java\com\sun\controller文件夹中创建AuthController类
package com.sun.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class AuthController {
@RequestMapping(value = {"/addUser","/deleteUser"})
public void checkAuth(){
System.out.println("增删操作验证");
}
}
运行结果:
启动项目后在浏览器输入http://localhost:8089/sy_ch9/addUser
启动项目后在浏览器输入http://localhost:8089/sy_ch9/deleteUser
(4)Method属性
在src\main\java\com\sun\controller中创建MethodController类
package com.sun.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/method")
public class MethodController {
@RequestMapping(method = RequestMethod.GET)
public void get(){
System.out.println("RequestMethod.GET");
}
@RequestMapping(method = RequestMethod.DELETE)
public void delete(){
System.out.println("RequestMethod.DELETE");
}
@RequestMapping(method = RequestMethod.POST)
public void post(){
System.out.println("RequestMethod.POST");
}
@RequestMapping(method = RequestMethod.PUT)
public void put(){
System.out.println("RequestMethod.PUT");
}
}
运行结果:
启动项目后在浏览器输入http://localhost:8089/sy_ch9/method
(5)Params属性
在src\main\java\com\sun\controller中创建ParamsController类
package com.sun.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ParamsController {
@RequestMapping(value = "/params",params = "id=1")
public void findMyId(String id){
System.out.println("id="+id);
}
}
运行结果:
启动项目后在浏览器输入http://localhost:8089/sy_ch9/params?id=1