1>使用配置文件创建MVC程序
1.1、具体步骤
1、确定导入了SpringMVC依赖 2、创建maven、增加web框架支持、配置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)-- >
< ! --
3、配置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.handler.BeanNameUrlHandlerMapping" / >
< ! -- 处理适配器-- >
< 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>
< / beans>
package com. bjpowernode. 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 {
@Override
public ModelAndView handleRequest ( HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView ( ) ;
mv. addObject ( "msg" , "HelloSpringMVC" ) ;
mv. setViewName ( "hello" ) ;
return mv;
}
}
< % --
Created by IntelliJ IDEA.
User: lenovo
Date: 2021 / 3 / 22
Time: 11 : 08
To change this template use File | Settings | File Templates.
-- % >
< % @ page contentType= "text/html;charset=UTF-8" language= "java" % >
< html>
< head>
< title> Title< / title>
< / head>
< body>
${ msg}
< / body>
< / html>
2>注释创建MVC程序
2.1、具体步骤
1、由于Maven可能存在资源过滤的问题,我们将配置完善
< build>
< resources>
< resource>
< directory> src/ main/ java< / directory>
< includes>
< include> * * * . xml< / include>
< / includes>
< filtering> false < / filtering>
< / resource>
< resource>
< directory> src/ main/ resources< / directory>
< includes>
< include> * * * . xml< / include>
< / includes>
< filtering> false < / filtering>
< / resource>
< / resources>
< / build>
2、新建一个Moudle。添加web支持,配置web.xml文件
< ? 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. 注册servlet-- >
< servlet>
< servlet- name> SpringMVC< / servlet- name>
< servlet- class > org. springframework. web. servlet. DispatcherServlet< / servlet- class >
< ! -- 通过初始化参数指定SpringMVC配置文件的位置,进行关联-- >
< 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>
< ! -- 所有请求都会被springmvc拦截 -- >
< servlet- mapping>
< servlet- name> SpringMVC< / servlet- name>
< url- pattern> / < / url- pattern>
< / servlet- mapping>
< / web- app>
3、配置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"
xmlns: context= "http://www.springframework.org/schema/context"
xmlns: mvc= "http://www.springframework.org/schema/mvc"
xsi: schemaLocation= "http: / / www. springframework. org/ schema/ beans
http: / / www. springframework. org/ schema/ beans/ spring- beans. xsd
http: / / www. springframework. org/ schema/ context
https: / / www. springframework. org/ schema/ context/ spring- context. xsd
http: / / www. springframework. org/ schema/ mvc
https: / / www. springframework. org/ schema/ mvc/ spring- mvc. xsd">
< ! -- 自动扫描包,让指定包下的注解生效, 由IOC容器统一管理 -- >
< context: component- scan base- package = "com.bjpowernode.controller" / >
< ! -- 让Spring MVC不处理静态资源 -- >
< mvc: default - servlet- handler / >
< ! --
支持mvc注解驱动
在spring中一般采用@RequestMapping 注解来完成映射关系
要想使@RequestMapping 注解生效
必须向上下文中注册DefaultAnnotationHandlerMapping
和一个AnnotationMethodHandlerAdapter实例
这两个实例分别在类级别和方法级别处理。
而annotation- driven配置帮助我们自动完成上述两个实例的注入。
-- >
< mvc: annotation- driven / >
< ! -- 视图解析器 -- >
< bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"
id= "internalResourceViewResolver" >
< ! -- 前缀 -- >
< property name= "prefix" value= "/WEB-INF/jsp/" / >
< ! -- 后缀 -- >
< property name= "suffix" value= ".jsp" / >
< / bean>
< / beans>
package com. bjpowernode. controller;
import org. springframework. stereotype. Controller;
import org. springframework. ui. Model;
import org. springframework. web. bind. annotation. RequestMapping;
import org. springframework. web. bind. annotation. RequestMethod;
@Controller
public class HelloController {
@RequestMapping ( "/hello" )
public String sayHello ( Model model) {
model. addAttribute ( "msg" , "helloSpringMVC" ) ;
return "hello" ;
}
}
@Controller :实现Controller接口 @RequestMapping:请求映射
相当于在注册Servlet时,添加url路径一样 value、path:路径 method:针对于不同的请求 5、写入jsp
< % --
Created by IntelliJ IDEA.
User: lenovo
Date: 2021 / 3 / 22
Time: 11 : 00
To change this template use File | Settings | File Templates.
-- % >
< % @ page contentType= "text/html;charset=UTF-8" language= "java" % >
< html>
< head>
< title> $Title$< / title>
< / head>
< body>
$END$
< / body>
< / html>
3>常见错误
404错误 1、查看控制台输出,看一下是不是缺少了什么jar包。 2、如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖! 3、重启Tomcat 即可解决!