SpringMVC:搭建第一个web项目并配置视图解析器

👉需求:用spring mvc框架搭建web项目,通过配置视图解析器达到jsp页面不得直接访问,实现基本的输出“hello world”功能。👩‍💻👩‍💻👩‍💻

1 创建web项目

1.1创建Maven project

1.2 把maven项目改造为web项目

项目右键-->Properties

 1.3导入依赖

🍀javax.servlet:javax.servlet-api 和 javax.servlet.jsp:jsp-api 以及 javax.servlet:jstl

这些库提供了 Servlet、JSP 和 JSTL 的 API,用于构建基于 Java 的 Web 应用。通常这些库只在编译时使用,因为在运行时,Web 容器(如 Tomcat)会提供这些 API 的实现。

<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>

1.4 部署项目(让maven库能自动部署到服务器上)

项目右键-->Properties

2.把spring集成到web项目

 🍄pom.xml

<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.3.23</version></dependency>

🍄在web.xml中添加监听器

 <!-- 在web.xml中添加监听器 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:beans.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>

3.集成spring mvc

🌻 pom.xml加入

<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.23</version></dependency>

🌻配置 web.xml

<!-- 配置 web.xml --><servlet><servlet-name>dispatcherServlet</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>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

🌻配置Springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="cn.edu.aaa.controller"></context:component-scan> </beans>

🌻控制器

package cn.edu.aaa.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class HelloController {@RequestMapping("/hello")public String hello() {return "index.jps";}}

4 配置视图解析器来简化代码

🍀目的:实现访问WEB-INF下隐藏的jsp页面

springmvc.xml中加入以下代码

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="WEB-INF/jsp/"></property><property name="suffix" value=".jsp"></property></bean>

则上述控制器修改为return "index";

5 拓展-解决html不能访问的问题

在web.xml中加入

<servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.html</url-pattern><url-pattern>*.htm</url-pattern></servlet-mapping>

6 pom.xml说明

<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>cn.edu.aaa</groupId><artifactId>demo7</artifactId><version>0.0.1-SNAPSHOT</version><dependencies>
<!--Spring 框架的核心容器库,提供了依赖注入和事件发布等功能--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.23</version></dependency><!--JUnit 是一个流行的 Java 测试框架,用于编写和运行单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency> <!--Spring 测试模块,提供了对 Spring 组件的测试支持,包括模拟对象、测试上下文加载等--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.3.23</version></dependency><!--AspectJ 的编织器库,用于支持面向切面编程(AOP)--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.5</version></dependency>  <!--Spring 的 JDBC 支持库,简化了 JDBC 操作和数据库事务管理--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.23</version></dependency>
<!--C3P0 是一个流行的数据库连接池库,用于管理数据库连接--><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.4</version></dependency>
<!--MySQL 的 JDBC 驱动程序,用于 Java 应用程序与 MySQL 数据库通信--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency>
<!--Java 注解的 API,常用于标注类、方法等。在 Java 9 及以后的版本中,Java EE 注解被移除了,因此这个库用于提供这些注解--><dependency><groupId>javax.annotation</groupId><artifactId>javax.annotation-api</artifactId><version>1.3.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>
<!--Spring 的 Web 支持库,提供了用于构建 Web 应用程序的基础结构和工具--><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.3.23</version></dependency>
<!--Spring MVC 的核心库,用于构建基于 MVC 设计模式的 Web 应用程序--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.23</version></dependency></dependencies></project>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620851.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hello算法11:排序

https://www.hello-algo.com/chapter_sorting/ 选择排序 初始未排序的区间是[0,n-1]在[0,n-1]中查找最小元素&#xff0c;和索引0交换&#xff0c;此时未排序的区间是[1,n-1]在[1,n-1]中查找最小元素&#xff0c;和索引1交换&#xff0c;此时未排序区间是[2,n-1]以此类推&…

C++ PTA 天梯赛 L1-003 个位数统计 L1-005 考试座位号 【范围for循环】【. 与 -> 访问成员】

L1-003 个位数统计 最后一个测试点考察的是当N特别大时&#xff0c;如果用整数存会数据溢出&#xff0c;改成字符串可以增大范围 知识点&#xff1a; 1.范围 for 循环&#xff0c;它对于遍历容器&#xff08;比如字符串&#xff09;中的元素非常方便。在这里&#xff0c;N 是…

低频电磁仿真 | 新能源汽车性能提升的利器

永磁同步电机 新能源汽车的心脏 近年来&#xff0c;全球变暖的趋势日益加剧&#xff0c;极端天气事件层出不穷&#xff0c;这些现象都反映出当前气候形势的严峻性。为了应对这一全球性挑战&#xff0c;各国纷纷采取行动&#xff0c;制定了一系列降碳、减碳的措施。中国在2020年…

蓝桥杯 — — 纯质数

纯质数 题目&#xff1a; 思路&#xff1a; 一个最简单的思路就是枚举出所有的质数&#xff0c;然后再判断这个质数是否是一个纯质数。 枚举出所有的质数&#xff1a; 可以使用常规的暴力求解法&#xff0c;其时间复杂度为&#xff08; O ( N N ) O(N\sqrt{N}) O(NN ​)&…

【C++】哈希封装unordered_map和unordered_set

在前边的博客中我们已经实现了哈希表&#xff0c;我们又知道unordered_map和unordered_set就是用哈希表封装出来的&#xff0c;那么我们就自己来封装出它们&#xff0c;就跟之前用红黑树封装出set和map是一样的&#xff0c;我们这里使用哈希桶的版本 首先我们要用一个哈希表同时…

01-Git 之快速入门操作本地仓库

https://learngitbranching.js.org/?localezh_CN在线练习git 1. Git 安装好Git以后, 先检查是否已经绑定了用户名和邮箱 git config --list1.1 为什么要使用版本控制&#xff1f; 从个人角度&#xff1a; 在做项目时&#xff0c;如果一点点去改代码会很乱&#xff0c;不利…

《QT实用小工具·二十五》日志重定向输出

1、概述 源码放在文章末尾 日志重定向输出&#xff0c;包含如下功能&#xff1a; 支持动态启动和停止。支持日志存储的目录。支持网络发出打印日志。支持输出日志上下文信息比如所在代码文件、行号、函数名等。支持设置日志文件大小限制&#xff0c;超过则自动分文件&#xf…

免费插件集-illustrator插件-Ai插件-批量替换链接图

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件&#xff0c;加强illustrator使用人员工作效率&#xff0c;进行批量替换链接图。首先从下载网址下载这款插件 https://download.csdn.net/download/m0_67316550/87890501&am…

ZISUOJ 数据结构-栈

题目列表&#xff1a; 问题 A: 数据结构-栈-括号匹配 思路&#xff1a; 遇到左半边括号&#xff0c;将其入栈&#xff0c;遇到右半边括号&#xff0c;则先判断栈是否为空&#xff0c;若为空&#xff0c;则匹配失败&#xff0c;若不为空&#xff0c;则再判断栈顶元素是否是与之匹…

宝塔面板部署腾讯云的域名

一、腾讯云&#xff0c;搜索我的证书&#xff0c;点击打开如图所示&#xff0c;点击下砸 二、点击宝塔的证书&#xff0c;然后下载到桌面 三、解压 四、打开宝塔&#xff0c;网站》自己的项目列表中要绑定的ssl 五、对应的文件内容复制进去&#xff0c;保存并启用证书 六、有了…

快速掌握Spring监控(Spring Boot admin)

监控 监控可视化监控平台Admin底层逻辑info 自定义端点 监控 监控的作用&#xff1a; 监控服务状态是否宕机监控服务运行指标&#xff08;内存&#xff0c;虚拟机&#xff0c;线程&#xff0c;请求等&#xff09;监控日志管理服务&#xff08;服务下线&#xff09; 监控的实…

查看 Linux 接入的 USB 设备速率是 USB2 还是 USB3

查看接入 usb 设备的速率 使用以下命令查看接入的 USB 设备速率&#xff08;每一行最后的 xxM 字样&#xff09;。插入设备前查看一次&#xff0c;插入设备后查看一次&#xff0c;对比即可定位到刚插入的设备是哪一条。 lsusb -t命令输出如下图 对照 USB 速率表 对照 USB 速…