初始SpringMVC-理解HelloSpringMVC
-
新建一个Module的maven工程,添加web支持
-
确定导入SpringMVC的依赖
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </dependency> <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> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies>
-
再jsp包里面建一个test.jsp,里面写上要请求的信息${msg}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${msg}
</body>
</html>
- 再web.xml中配置DispatchServlet,其中再servlet和servlet-mapping中的servlet-name名字要一致!接着要绑定Spring的配置文件:contextConfigLocation,value值为你要建的xml文件的名字。(这里是springmvc-servlet.xml),并开启级别,1级表示和服务器一起运行!
<?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:这个是SpringMVC的核心,请求分发器,前端控制器-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--DispatchServlet要绑定Spring的配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--启动级别:1-->
<load-on-startup>1</load-on-startup>
</servlet>
<!--
在SpringMVC中, / /*
/:只匹配所有的请求,不会去匹配jsp页面
/*:匹配所有的请求,包含jsp页面
-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
- 新建的springmvc-servlet.xml配置处理器映射器,处理器适配器和视图解析器,也是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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--处理器映射器-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
- 在java包里新建包com.hao.controller新建java文件HelloContorller,继承Contoller接口,实现里面唯一的方法,方法要求返回一个ModelAndView,就new 一个ModelAndView对象。再返回。中间写业务代码和视图跳转页面。
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView();
//业务代码
String result="HelloSpringMVC";
mv.addObject("msg",result);
//视图跳转
mv.setViewName("test");
return mv;
}
}
- 把写好的代码再注册到bean中(springmvc-servlet.xml)。
<!--BeanNameUrlHandlerMapping:bean-->
<bean id="/hello" class="com.hao.controller.HelloController"/>
- 配置tomcat启动并测试。
再输入/hello是完成页面的跳转。
可能遇到的问题:
-
查看控制台输出,看一下是不是缺少什么jar包
-
如果jar包存在,显示无法输出,就在IDEA中的项目中,添加lib依赖。
-
重启Tomcat即可
小结:我们再实际开发中才不会这么写,不然都疯了。是注解实现,这才是SpringMVC的精髓!看看有多简单!!