1 准备阶段
1.1 引入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
1.2 在IDEA项目发布中,添加lib依赖
与这篇博客的第2步完全相同: springMVC-HelloSpringMVC
1.3 编写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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
1.4 在web.xml中配置dispatchServlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--配置dispatchServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.dispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>test</title>
</head>
<body>
${msg}
</body>
</html>
2 测试实现Controller接口的方式
2.1 编写Controller类
//只要实现了Controller接口的类,说明这就是一个控制器了
public class ControllerTest1 implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addobject("msg","Controller接口");
modelAndView.setViewName("test");
return modelAndView;
}
}
<bean id="/t1" class="com.lv.controller.ControllerTest1"/>
2.3 启动Tomcat,测试
3 测试使用@Controller注解方式(推荐使用)
3.1 在springmvc的配置文件中头加入context约束
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
<context:component-scan base-package="com.lv.controller"/>
3.3 编写两个Controller类
//代表这个类会被spring接管,并且这个类中所有的方法,如果返回值是String,并且有具体页面可以跳转,那么就会被视图解析器解析
@Controller
public class ControllerTest2 {
@RequestMapping("t1")
public String test1(Model model){
model.addAttribute("msg","注解实现t1");
return "test";
}
@RequestMapping("t2")
public String test2(Model model){
model.addAttribute("msg","注解实现t2");
return "test";
}
}
@Controller
@RequestMapping("c1")
public class ControllerTest3 {
@RequestMapping("t1")
public String test1(Model model){
model.addAttribute("msg","注解实现c1/t1");
return "test";
}
}
3.4 启动Tomcat,测试
注:不同的地址对应不同的方法
4 总结:
- 使用实现Controller接口的方式,一个控制器中只有一个方法,如果要多个方法就需要多个Controller,定义方式比较麻烦
- @Controller注解方式比较灵活,一个Controller可以定义多个方法.
- 多个请求可以指向同一个页面,只需要携带不同的数据,就可以在同一个页面中显示不同的数据,视图被复用,说明控制器和视图之间是弱耦合关系
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。