1.在web.xml中配置前端控制器等
dispatcher /dɪˈspætʃər/
<?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"> <!--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> </web-app>
2.1来到main目录下的资源目录,新建一个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"> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> </beans>
4.如果想要修改xml文件的名称,记得将1.中下行也进行修改
<param-value>classpath:springmvc-servlet.xml</param-value>
2.2然后添加 映射处理器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
2.3添加 处理器适配器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
2.4添加视图解析器
<!--视图解析器: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>
3.接下来我们要操作业务Controller,要么实现Controller接口,要么增加注解;需要返回一个ModelAndView,装数据,封视图;(这里我们使用的是继承接口)
package com.kuang.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//注意:这里我们先导入Controller接口
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//ModelAndView 模型和视图
ModelAndView mv = new ModelAndView();
//封装对象,放在ModelAndView中。Model
mv.addObject("msg","HelloSpringMVC!");
//封装要跳转的视图,放在ModelAndView中
mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
return mv;
}
}
4.将自己的类交给SpringIOC容器,注册bean(就是回到springmvc-servlet.xml ,配置如下 )
<!--Handler-->
<bean id="/hello" class="com.kuang.controller.HelloController"/>
(也就是如果之后用户输入一个"hello",前端控制器就会跟着这行找到HelloController这个类,然后这个类去刨拉springmvc-servlet.xml中的前后缀,把自己视图展示的完整的路径刨拉出来
mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
然后发现"msg"匹配,显示内容HelloSpringMVC!)
5.写要跳转的jsp页面,显示ModelandView存放的数据,以及我们的正常页面;
在WEB-INF下创建一个jsp包,然后写一个"hello.jsp"界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Kuangshen</title>
</head>
<body>
${msg}
</body>
</html>
6.配置Tomcat 启动测试!
遇到过的问题:
在启动Tomcat,输入/hello 之后,遇到了404问题
在查看整个流程么得问题之后,发现是如下问题
1.点击左上角的File点开Project Structure,再点击Artifacts,找到springmvc-02-hellomvc:war exploded2(自己的项目模块名),发现没有jar包(之前有导入依赖,这应该是idea的问题,或者别的什么我不知道的)
所以我在classes文件夹下,新建立lib目录,导入所有jar包
然后再重新运行,就可以了