SpringMVC框架搭建流程(完整详细版)
SpringMVC框架搭建流程
开发过程
1)配置DispatcherServlet前端控制器
2)开发处理具体业务逻辑的Handler(@Controller、 @RequestMapping)
3) xml配置?件配置controller扫描,配置springmvc三?件
4)将xml?件路径告诉springmvc(DispatcherServlet)
详细流程:
创建目录
新建maven项目,注意选择webapp骨架。
创建成功之后会发现没有src等目录,这些需要我们手动创建:
在src下面新建main,main下面新建java目录,选择java目录,右键,
在main下面继续新建resource目录,选择resource目录,右键,
pom.xml
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lagou.edu</groupId> <artifactId>springmvc-demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> <!--引入spring webmvc的依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.12.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8080</port> <path>/</path> </configuration> </plugin> </plugins> </build> </project>
注意Tomcat7插件是用来运行项目的,右侧运行:
springmvc相关配置
main文件夹下面新建webapp文件夹,webapp下面新建WEB-INF,下面新建web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 方式一:带后缀,比如*.action *.do *.aaa 该种方式比较精确、方便,在以前和现在企业中都有很大的使用比例 方式二:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等) 为什么配置为/ 会拦截静态资源??? 因为tomcat容器中有一个web.xml(父),你的项目中也有一个web.xml(子),是一个继承关系 父web.xml中有一个DefaultServlet, url-pattern 是一个 / 此时我们自己的web.xml中也配置了一个 / ,覆写了父web.xml的配置 为什么不拦截.jsp呢? 因为父web.xml中有一个JspServlet,这个servlet拦截.jsp文件,而我们并没有覆写这个配置, 所以springmvc此时不拦截jsp,jsp的处理交给了tomcat 如何解决/拦截静态资源这件事? 方式三:/* 拦截所有,包括.jsp --> <!--拦截匹配规则的url请求,进入springmvc框架处理--> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
里面配置了springmvc相关的配置,引入了springmvc.xml:
在resource目录下新建springmvc.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 https://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 "> <!--开启controller扫描--> <context:component-scan base-package="com.lagou.edu.controller"/> <!--配置springmvc的视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 自动注册最合适的处理器映射器,处理器适配器(调用handler方法) --> <mvc:annotation-driven/> </beans>
在java目录下新建包com.lagou.edu.controller,下面新建DemoController:
package com.lagou.edu.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.util.Date; /** * @author lyj * @Title: DemoController * @ProjectName springmvc-demo * @Description: TODO * @date 2020/6/9 21:21 */ @Controller @RequestMapping("/demo") public class DemoController { /** * http://localhost:8080/demo/handle01 */ @RequestMapping("/handle01") public ModelAndView handle01(){ Date date=new Date(); ModelAndView modelAndView=new ModelAndView(); modelAndView.addObject("date",date); modelAndView.setViewName("success"); return modelAndView; } }
在WEB-INF下面新建jsp文件夹,下面新建success.jsp:
<%@ page language="java" isELIgnored="false" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 当前时间 ${date} </body> </html>
完毕后整个项目结构如下:
测试:
浏览器访问:
相关推荐
boneix 2020-10-21
JudeJoo 2020-08-21
meleto 2020-08-15
haidaoxianzi 2020-07-04
小鱿鱼 2020-06-26
haidaoxianzi 2020-06-14
qingjiuquan 2020-06-07
zhangdy0 2020-05-31
qingjiuquan 2020-05-30
HappyHeng 2020-05-16
whbing 2020-04-17
whbing 2020-04-11
小鱿鱼 2020-03-20
mendeliangyang 2020-02-20
方志朋 2020-02-14
牧场SZShepherd 2020-02-01