前言
构建简单的SpringMVC工程,熟悉环境的配置以及简单的工作流程。
创建项目配置简单的HolleSpringMVC
1、创建一个新的Moudle,右键勾选Web支持。
2、修改pom.xml,导入所需依赖。
导入所需jar包。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
3、修改web.xml, 注册DispatcherServlet。
DispatcherServlet同样是一个HttpServlet进行请求的分发(分发给处理映射器、处理适配器、视图解析器),我给服务器一个请求(本例中的请求:展示jsp页面以及其中的内容),请求就会通过DispatcherServlet对我们发送的请求的URL(请求展示的jsp页面的位置)进行解析,得到发送的请求所需要的资源标识符(在哪一个jsp页面下:名叫hello这个jsp下)。
<!--1.注册DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
<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>
<!--/ 匹配所有的请求;(不包括.jsp)-->
<!--/* 匹配所有的请求;(包括.jsp)-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
4、编写SpringMVC的配置文件
名称官方要求:[servletname]-servlet.xml,此处名称:springmvc-servlet.xml。
<?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">
</beans>
5、添加处理映射器、处理适配器、视图解析器。
DispatcherServlet将请求分发给这三个;处理映射器匹配对应的URL找到我们对请求做处理的处理器Handler。处理适配器去执行我们所编写的Controller方法,执行完Controller方法后会返回一个ModelAndView给DispatcherServlet,然后根据DispatcherServlet所给的ModelAndView对象配置视图解析器,ModelAndView对象中包含请求的逻辑视图路径(3、中的资源标识符所在)以及其中的数据信息,解析器将逻辑视图路径进行处理拼接成真实视图路径。
<!--处理映射器BeanNameUrlHandlerMapping-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--处理适配器SimpleControllerHandlerAdapter-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器:DispatcherServlet给他的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
6、编写我们要操作业务
编写我们要操作业务Controller ,要实现Controller接口,需要返回一个ModelAndView。通过ModelAndView()方法实现我们的请求操作,setViewName指定数据及页面所展示的具体页面。
package...
import...
//注意:这里我们先导入Controller接口
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//ModelAndView 模型和视图
ModelAndView mv = new ModelAndView();
//封装对象,放在ModelAndView中。
mv.addObject("msg","HelloSpringMVC1!");
//封装要跳转的视图,放在ModelAndView中
mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
return mv;
}
}
7、将自己的类交给SpringIOC容器,注册bean。
BeanNameUrlHandlerMapping会根据请求的url和Srping容器的name属性进行匹配,从而找到处理器。
<!--Handler-->
<bean id="/hello" class="com.sy.controller.HelloController"/>
8、跳转页面
写要跳转的jsp页面,显示ModelandView存放的数据以及页面。
<body>
${msg}
</body>
9、配置Tomcat,启动测试。
注:可能会遇到的问题!
操作以及代码完全正确,仍然出现404?
1、查看是否缺少jar包
2、jar包存在,无法正确显示
解决方法:
IDEA的项目发布(Project Sturcture.. ..)中添加lib目录,导入项目所有jar包。
(lib与classes同级)
右键全选添加Library Files
**