1.新建一个mvaenProject
目的是:统一管理我们的依赖,我们之后做的所有springmvc程序,这样也更利于我们后续的复习
- 创建好之后就把src删掉,这是一个大包我们不需要用到src,这个大包用来管理我们后面创建的每一个module模块。
2 创建模块
1. 这里我们学习狂神的做法,创建module的
在大项目下创建Moudle
其余直接创建就好了。
3 导入springmvc依赖
1. 可以在父类的pom.xml文件上插入下面这些Springmvc依赖,这样以后每一个子类都不需要导入这些依赖了。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</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.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>
导入完毕之后,记得刷新一下maven。
4 给子module添加web支持
5 将依赖添加到module上
-
把Library Files里面的东西全部添加进,lib这个文件上
6 编写web.xml文件:注册DispatcherServlet
<?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>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这段代码的含义是:
<!-- 有多少请求,会被servlet-name为springmvc管理, 这个Servlet-name的为springmvc,就是上面的dispatcherServlet, 它也的servlet-name也是:springmvc <url-pattern>:指的你访问过来的路劲 / 匹配所有的请求;(不包括.jsp) /* 匹配所有的请求;(包括.jsp) -->
编写springmvc的配置文件
- 配置 【处理器映射器】bean
- 配置【处理器适配器】bean。
- 配置【视图解析器】bean
上面爆红的名字,就是springmvc配置文件名字,所以你在这里创建叫什么名字,那爆红的地方就写什么名字
添加处理器映射器
- 这个bean是从spring里面拿的,不需要自己定义一个类。
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
添加处理器适配器
- 这个bean是从spring里面拿的,不需要自己定义一个类。
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
添加视图解析器
- 这个bean是从spring里面拿的,不需要自己定义一个类。
<!--视图解析器: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>
编写controller
- 随便写一个类,让其实现Controller的类
- 在springmvc的配置文件中,将1.写的类,加载成bean
注意,这个bean的id就是我们在浏览器访问的地址。 - 在/WEB-INF/jsp/ 下创建一个hello.jsp的前端页面
编写controller实现类
package com.pcs.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloController implements Controller {
/**
* 这个方法的作用就是处理你发送过来的请求逻辑。
* 一般都会是增删改查,这些操作,然后我们把前端想要的结果给他们返回
* 返回值ModelAndView,就是我们要返回回去的内容
* httpServletRequest就是对方发送过来的请求
* httpServletResponse可以帮助我们完成重定向或者转发操作。
* @param httpServletRequest
* @param httpServletResponse
* @return
* @throws Exception
*/
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//ModelAndView:直接翻译就是:模型和视图
//既然我们要返回这个值,我们就创建一个
ModelAndView modelAndView = new ModelAndView();
//给这个对象封装数据,因为我们要返回的就是这个ModelAndView,我们要封装起来得回给前端返回回去
modelAndView.addObject("msg","helloSpringMVC");
//这个atrributeName:就是健,atrributeValue就是值。前端通过jstl表达式,就能通过这个健的名字,将值取出来
modelAndView.setViewName("hello");// 这一步指的是,你要将这个内容返回给那个页面。
//刚才我们是不是在 springmvc的配置文件上设置视图解析器呀?
//哪里的前缀就放在hello的前面,后缀就放在hello的后面。组合起来就是:/WEB-INF/jsp/hello.jsp
return modelAndView;//这就返回即可。
}
}
将刚创建controller实现类加载成bean
编写jsp文件
配置tomcat
下载
配置tomcat
- 选择artified
运行测试
出现的问题
- 出现这个问题的原因是什么呢?
- 可能是bean没有加载进spring容器中,根据上图。我们犯了一个致命
- 查看第六步,导入添加依赖是否有添加进去
- 解决方案是:
问题二:
》前端页面获取数据的格式写错了。
最终效果