无锡模板建站源码/客户引流推广方案

无锡模板建站源码,客户引流推广方案,对我国政府网站建设和管理的现状,网站做子页面怎么做1. SpringMVC 简介 SpringMVC 是 Spring 框架中的一个 Web 层框架,基于 MVC(Model-View-Controller) 设计模式,提供了清晰的分层结构,适用于 Web 应用开发 SpringMVC 主要组件 DispatcherServlet(前端控…

1. SpringMVC 简介

SpringMVC 是 Spring 框架中的一个 Web 层框架,基于 MVC(Model-View-Controller) 设计模式,提供了清晰的分层结构,适用于 Web 应用开发

SpringMVC 主要组件

  1. DispatcherServlet(前端控制器):拦截所有请求并进行分发
  2. HandlerMapping(处理器映射器):确定请求由哪个控制器方法来处理
  3. Controller(控制器):负责处理具体的请求逻辑
  4. ViewResolver(视图解析器):解析视图,渲染最终页面
  5. ModelAndView(模型和视图):封装数据和视图信息

SpringMVC 执行流程

在这里插入图片描述

2. SpringMVC 项目搭建(Spring 6.1.14)

2.1 引入 Maven 依赖

pom.xml 文件中添加以下依赖:

<dependencies><!-- Spring Web --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>6.1.14</version></dependency><!-- Servlet API --><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>6.0.0</version><scope>provided</scope></dependency><!-- Jackson 用于 JSON 解析 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.16.0</version></dependency>
</dependencies>

2.2 配置 SpringMVC(Java 配置方式)

2.2.1 Web 初始化配置

使用 WebApplicationInitializer 代替 web.xml,实现 SpringMVC 自动初始化

import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;public class WebAppInitializer implements WebApplicationInitializer {@Overridepublic void onStartup(ServletContext servletContext) throws ServletException {AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();context.register(SpringMvcConfig.class);ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(context));dispatcher.setLoadOnStartup(1);dispatcher.addMapping("/*");}
}
2.2.2 SpringMVC 配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;@Configuration
@EnableWebMvc
@ComponentScan("com.alivinfer.controller")
public class SpringMvcConfig implements WebMvcConfigurer {@Beanpublic ViewResolver viewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".jsp");return resolver;}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/static/**").addResourceLocations("/static/");}
}

2.3 创建 Controller 处理请求

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")
public class UserController {@GetMapping("/hello")public String sayHello() {return "Hello, SpringMVC!";}
}

2.4 创建 JSP 视图

webapp/WEB-INF/views/hello.jsp 文件中:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>Hello SpringMVC</title>
</head>
<body><h2>Hello, SpringMVC</h2>
</body>
</html>

3. 运行与测试

  1. 启动 Tomcat 或其他 Servlet 容器
  2. 访问 http://localhost:8080/user/hello,返回 Hello, SpringMVC!
  3. 访问 http://localhost:8080/hello.jsp,查看 JSP 视图

4. 可能遇到的问题

4.1 NoSuchMethodError: java.util.LinkedHashSet

如果运行时报 java.util.LinkedHashSet 相关错误,可能是 Spring 版本与 Jakarta 依赖不兼容,请检查以下内容:

  • Spring 6+ 需要 Jakarta EE 9+,务必使用 **jakarta.servlet-api 6.0.0+**
  • 确保 spring-webmvcspring-context 版本一致

4.2 404 Not Found

  • 检查 WebAppInitializer 是否正确注册了 DispatcherServlet
  • 确保 @ComponentScan 扫描到了 Controller
  • 试试清理项目 mvn clean,然后 mvn package 重新部署

5. 总结

本文主要介绍了 SpringMVC 的基本概念,并基于 Spring 6.1.14 搭建了一个简单的 MVC 应用,包括:

  • Maven 依赖
  • DispatcherServlet 配置
  • Controller 控制器
  • 视图解析
  • 可能遇到的错误及解决方案

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

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

相关文章

DeepSeek结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)转载

思维速览&#xff1a; 本文将详细介绍如何利用DeepSeek结合Mermaid语法绘制各类专业图表&#xff0c;帮助你提高工作效率和文档质量。 ▍DeepSeek入门使用请看&#xff1a;deepseek保姆级入门教程&#xff08;网页端使用 本地客户端部署 使用技巧&#xff09; DeepSeek官网…

上下分层、左右分离的驱动设计思想

之前了解了最简单的驱动程序、但是不易扩展、现在继续学习、上下分层、左右分离的驱动设计思想。 1、led_dev.c函数 上层函数&#xff0c;①定义一个结构体&#xff0c;存储函数用来接应app的函数。②定义一个入口函数&#xff0c;将我们接应的函数告诉内核&#xff0c;给这个…

《历史代码分析》5、动态控制列表的列

​​ 本系列《历史代码分析》为工作中遇到具有代表性的代码。今天我们讲一下&#xff0c;动态展示列表的列&#xff0c;因为找不到代码了&#xff0c;所有本篇用图展示。 举个栗子 ​​ 我们希望能够动态的控制列表的列&#xff0c;例如&#xff0c;英语老师只想知道自己学…

Windows HD Video Converter Factory PRO-v27.9.0-

Windows HD Video Converter Factory PRO 链接&#xff1a;https://pan.xunlei.com/s/VOL9TaiuS7rXbu-1kEDndoceA1?pwd7qch# 支持300多种视频格式转换&#xff0c;在保留视频质量的同时&#xff0c;压缩率可达80%&#xff0c;转换速度可达50X速率&#xff01; 支持画面剪切、片…

##Hive安装-初始化元数据报错 *** schemaTool failed ***

报错&#xff1a; org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version. Underlying cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Communications link failure 解决方案&#xff1a; 尝试一&#xff1a;javax.jdo.o…

远程手机遥控开关原理及应用

远程手机遥控开关的工作原理主要是通过互联网传递无线信号&#xff0c;控制用电器的一种智能家居产品。 远程手机遥控开关的基本套件包括&#xff1a;手机APP、网线、家用WIFI中转无服务器或者是工厂提供的自带网线端口的中转服务器、连接用电器的接收器。使用时&#xff0c;手…

Mac java全栈开发环境配置

前言 由于最近手中的windows本子坏了,所以搞了一台m系列的macbookpro 作为一个开发者 面对新设备最先考虑的应该就是各种sdk、中间件服务、环境变量配置和工具了吧!!! 本文将带你手把手学习Mac搭建属于自己的本地开发环境 安装brew 什么是brew? ‌Brew(全称Homebrew)…

HTMLCSS绘制三角形

1.代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>01triangle</title><s…

vue3-element-admin 前后端本地启动联调

一、后端环境准备 1.1、下载地址 gitee 下载地址 1.2、环境要求 JDK 17 1.3、项目启动 克隆项目 git clone https://gitee.com/youlaiorg/youlai-boot.git数据库初始化 执行 youlai_boot.sql 脚本完成数据库创建、表结构和基础数据的初始化。 修改配置 application-dev.y…

WinForm模态与非模态窗体

1、模态窗体 1&#xff09;定义&#xff1a; 模态窗体是指当窗体显示时&#xff0c;用户必须先关闭该窗体&#xff0c;才能继续与应用程序的其他部分进行交互。 2&#xff09;特点&#xff1a; 窗体以模态方式显示时&#xff0c;会阻塞主窗体的操作。用户必须处理完模态窗体上…

Agisoft Metashape 创建分块建模

Agisoft Metashape 创建分块建模 文章目录 Agisoft Metashape 创建分块建模前言一、构建分块模型1.1、设置模型范围1.2、参数设置二、构建纹理三、导出分块模型3.1整体导出3.2单独导出选定的分块四、编辑分块模型前言 从 Agisoft Metashape Professional 的 2.1. 版本开始,就…

MinIO的预签名直传机制

我们传统使用MinIo做OSS对象存储的应用方式往往都是在后端配置与MinIO的连接和文件上传下载的相关接口&#xff0c;然后我们在前端调用这些接口完成文件的上传下载机制&#xff0c;但是&#xff0c;当并发量过大&#xff0c;频繁访问会对后端的并发往往会对服务器造成极大的压力…

手把手教你用Docker搭建gitlab

文章目录 前言一、安装Docker二、安装GItlab三、配置Gitlab四、备份五、Docker数据持久化总结 前言 如题所述&#xff0c;手把手带你搭建gitlab&#xff0c;目标是实现ssh链接clone项目&#xff0c;不会我随你怎么说。 说正题&#xff0c;GitLab 是一个基于 Git 的全面 DevOps…

基于springboot住院管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着世界经济信息化、全球化的到来和电子商务的飞速发展&#xff0c;推动了很多行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、畅通、高效的线上管理系统。当前的住院管理存在管理效率低下&…

数据采集技术之python网络爬虫(中国天气网的爬取)

一、爬取中国天气网所有地区当天的天气数据&#xff08;PyCharm&#xff09;&#xff1a; 网址&#xff1a;https://www.weather.com.cn/ 下面爬取数据&#xff1a; 因为现在已经到了夜间&#xff0c;所以白天的数据已经不见了&#xff0c;但原理是一样的。 二、代码以及详情…

Ollama本地部署deepseek-r1蒸馏版

Docker安装Ollama 拉取镜像 docker pull ollama/ollama​ 启动-使用GPU docker run -d --gpusall -p 11434:11434 --name ollama ollama/ollamadocker run : Docker 的核心命令&#xff0c;用于创建并启动一个新的容器。 -d : 后台模式&#xff08;detached mode&#xff09…

41.HarmonyOS NEXT Layout布局组件系统详解(八):自定义样式与类

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT Layout 布局组件系统详解&#xff08;八&#xff09;&#xff1a;自定义样式与类 文章目录 HarmonyOS NEXT Layout 布局组件系统详…

【Go | 从0实现简单分布式缓存】-7:增加etcd和gRPC功能

本文目录 1.序2.引入etcd缓存流程项目结构 3.gocachepb.proto4.服务注册register.go5.服务发现discover.go6.gRPC客户端client.gopeers.goclient.go 7.gRPC服务端实现server.go一些问题缓存获取流程缓存设置流程为什么要带超时的上下文&#xff1f; 1.序 GeeCache项目并没有引…

Pytorch系列教程:可视化Pytorch模型训练过程

深度学习和理解训练过程中的学习和进步机制对于优化性能、诊断欠拟合或过拟合等问题至关重要。将训练过程可视化的过程为学习的动态提供了有价值的见解&#xff0c;使我们能够做出合理的决策。训练进度必须可视化的两种方法是&#xff1a;使用Matplotlib和Tensor Board。在本文…

18 | 实现简洁架构的 Handler 层

提示&#xff1a; 所有体系课见专栏&#xff1a;Go 项目开发极速入门实战课&#xff1b;欢迎加入我的训练营&#xff1a;云原生AI实战营&#xff0c;一个助力 Go 开发者在 AI 时代建立技术竞争力的实战营&#xff1b;本节课最终源码位于 fastgo 项目的 feature/s14 分支&#x…