Spring MVC框架二:创建第一个MVC程序

devtools/2025/2/26 22:33:43/

精心整理了最新的面试资料,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取
有两种方式

利用配置

1、利用IDEA新建一个Maven项目,添加一个web支持

在这里插入图片描述
在这里插入图片描述
2、导入常用的依赖

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></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>

3、配置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">
<!--配置DispatchServlet:Spring的核心,请求分发器,前端控制器--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--绑定配置Spring文件--><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><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
<!--SpringMVC中 / 和 /*的区别
/:不会匹配jsp页面,/*会匹配jsp页面--></web-app>

4、编写SpringMVC的配置文件,文件名为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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--处理器映射器--><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!--处理器适配器--><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<!--前缀--><property name="prefix" value="/WEB-INF/jsp/"></property>
<!--后缀--><property name="suffix" value=".jsp"></property></bean>

5、编写要操作的业务Controller,要么实现接口,要么增加注解,需要返回一个ModelAndView,装数据,封视图

java">package com.www.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 {public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {//ModelAndView 模型和视图ModelAndView mv = new ModelAndView();String result = "HelloSpringMVC";//封装对象,放在ModelAndView中mv.addObject("msg",result);//封装要跳转的视图,放在ModelAndView中mv.setViewName("test");//WEB-INF/jsp/test.jspreturn mv;}
}

6、将类交给SpringIOC容器,注册bean

<!--BeanNameUrlHandlerMapping:bean--><bean id="/hello" class="com.www.controller.HelloController"></bean>
</beans>

7、写要跳转的jsp页面,显示ModelAndView存放的数据

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
${msg}
</body>
</html>

8、配置Tomcat启动测试
在这里插入图片描述

可能遇到的问题:访问出现404,排查步骤:

1.查看控制台输出,看一下是不是缺少了什么jar包。
2.如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!
在这里插入图片描述
在这里插入图片描述

3.重启Tomcat 即可解决!

利用注解

1、新建一个Maven项目,添加web支持,配置好依赖,子项目的话就不用了
2、由于Maven可能存在资源过滤的问题,所以在之前的xml文件中添加如下内容

<build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build>

3、配置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">
<!--    注册servlet--><!--配置DispatchServlet:Spring的核心,请求分发器,前端控制器--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--绑定配置Spring文件,进行关联--><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>
<!--    所有的请求都会被springmvc拦截--><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--SpringMVC中 / 和 /*的区别/:不会匹配jsp页面,/*会匹配jsp页面-->
</web-app>

4、添加Spring MVC配置文件
在resource目录下添加springmvc-servlet.xml配置文件,配置的形式与Spring容器配置基本类似,为了支持基于注解的IOC,设置了自动扫描包的功能

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 --><context:component-scan base-package="com.www.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>

在视图解析器中我们把所有的视图都存放在/WEB-INF/目录下,这样可以保证视图安全,因为这个目录下的文件,客户端不能直接访问

5、创建一个控制类

java">package com.www.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class HelloController {@RequestMapping("/h1")public String hello(Model model){model.addAttribute("msg","Hello,SpringMVC6666666");return "hello";}
}

结语

创作不易,希望能对大家给予帮助

想要获取更多资源?

点击链接获取


http://www.ppmy.cn/devtools/162901.html

相关文章

java对hdfs文件的拉取和上传操作

文章目录 一、创建Configuration对象二、创建FileSystem对象三、打开hdfs文件四、FileSystem的一些方法五、完整示例1、拉取文件2、上传文件 一、创建Configuration对象 org.apache.hadoop.conf.Configuration Configuration conf new Configuration();设置部分属性 //使用数…

QT C++ QtConcurrent::run 异步任务 简单例子

QtConcurrent命名空间提供了高级API&#xff0c;使得无需使用低级线程原语即可编写多线程程序。 ‌QtConcurrent::run‌是Qt框架中用于简化并发编程的一个功能&#xff0c;主要用于在后台线程中异步执行函数或成员函数。其主要用途包括&#xff1a; ‌异步执行函数‌&#xf…

单片机的串口(USART)

Tx - 数据的发送引脚&#xff0c;Rx - 数据的接受引脚。 串口的数据帧格式 空闲状态高电平&#xff0c;起始位低电平&#xff0c;数据位有8位校验位&#xff0c;9位校验位&#xff0c;停止位是高电平保持一位或者半位&#xff0c;又或者两位的状态。 8位无校验位传输一个字节…

蓝桥杯训练 补题

P8605 [蓝桥杯 2013] 网络寻路 这个题之前写过&#xff0c;但是后面数据加强了&#xff0c;直接dfs是会超时的&#xff0c;这是就要用另外的解法了&#xff0c;题目要求只要三条边&#xff0c;那么就可以找中间的边&#xff0c;对于每组边&#xff0c;把他们作为中间边&#xf…

如何禁用uniapp,vue页面下拉刷新功能

在小程序开发中&#xff0c;enablePullDownRefresh 是一个常用的配置项&#xff0c;用来控制页面是否允许下拉刷新。但是&#xff0c;有时即使在 pages.json 中将其设置为 false&#xff0c;下拉刷新依然可能未被完全禁用。 1. enablePullDownRefresh: false 配置无效 enable…

Postman学习总结

1、基本操作&#xff1a; 【2023全网最牛教程】10分钟快速上手Postman&#xff08;建议收藏&#xff09;_macbook postman打开慢-CSDN博客 接口测试—Postman详解-CSDN博客 新手如何使用postman&#xff08;新手使用&#xff0c;简单明了&#xff09;_postman教程-CSDN博客 …

【无标题】网络安全公钥密码体制

第一节 网络安全 概述 一、基本概念 网络安全通信所需要的基本属性“ 机密性&#xff1b;消息完整性&#xff1b;可访问性与可用性&#xff1b;身份认证。 二、网络安全威胁 窃听&#xff1b;插入&#xff1b;假冒&#xff1b;劫持&#xff1b;拒绝服务Dos和分布式拒绝服务…

上证50股指期货一手多少钱?

先说结论&#xff0c;一手上证50股指期货的钱数&#xff0c;主要看两个东西&#xff1a;指数点位 和 保证金比例。 &#xff08;一&#xff09;合约金额怎么算&#xff1f; 上证50股指期货的规则是&#xff1a;每一点指数值300块钱。比如&#xff0c;现在上证50指数是2700点&…