首页 > 其他分享 >SpringMVC 结合 Servlet 不成功问题集锦

SpringMVC 结合 Servlet 不成功问题集锦

时间:2023-04-05 16:46:47浏览次数:50  
标签:web resolve Tomcat SpringMVC user 集锦 sql Servlet User

问题集锦

question 1:Tomcat 10 版本太高

cause

Tomcat 10 版本.

image-20230405092058566.

主要就是说Tomcat 10 之前的用户如果使用 Tomcat 10 就需要将 javax.* 的导入转变为 jakarta.*。这样才能将代码在 Tomcat 10 中部署,还给你了一个迁移工具migration tool 来帮助你迁移代码。


resolve

Tomcat 9 版本及以下。

咱们主要来学习如何使用 Tomcat 来部署运行项目,如果自己还需手动迁移代码,那么花费的时间有点得不偿失了(大佬除外)。


question 2:idea 的 web 项目标志没有了蓝点image-20230405093042848.

cause

正确的 web 项目:image-20230405093107805.

错误的 web 项目:image-20230405093153627.


resolve

Project Structure -> Artifacts

image-20230405093429102.

Project Structure -> Modules -> 选择自己具体的 Module -> 点击 +

image-20230405093809957image-20230405094105202.

注意一下,一般是没有什么问题。

image-20230405094323226.

别忘记了 ApplyApplyApply!,别问为什么,因为我也忘了。

image-20230405094853294.

成功了!

image-20230405094917603image-20230405095134592.


question 3:路径映射不正确

cause

org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping for GET /login

你确定你的环境配置没有问题,但是报 404 问题,这可能是一个解决方案!


resolve

web.xml

<!--
   DispatcherServlet 是前端控制器设计模式的实现,提供 Spring Web MVC 的集中访问点,而且负责职责的分派,
          而且与 Spring IoC 容器无缝集成,从而可以获得 Spring 的所有好处。

  DispatcherServlet 主要用作职责调度工作,本身主要用于控制流程,主要职责如下:
  1、文件上传解析,如果请求类型是 multipart 将通过 MultipartResolver 进行文件上传解析;
  2、通过 HandlerMapping,将请求映射到处理器(返回一个 HandlerExecutionChain,它包括一个处理器、多个 HandlerInterceptor 拦截器);
  3、通过 HandlerAdapter 支持多种类型的处理器(HandlerExecutionChain 中的处理器);
  4、通过 ViewResolver 解析逻辑视图名到具体视图实现;
  5、本地化解析;
  6、渲染具体的视图等;
  7、如果执行过程中遇到异常将交给 HandlerExceptionResolver 来解析。
 -->
<servlet>
    <description>spring mvc servlet</description>
    <servlet-name>springMvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <description>spring mvc 配置文件</description>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springMvc</servlet-name>
    <!-- 
	url-pattern 的值为 / 
	Spring 原话:Fortunately the default Servlet mapping "/" is a good choice.
	-->
    <url-pattern>/</url-pattern>
</servlet-mapping>

Path Matching.

原文就看懂了这一句话:

image-20230405101924964.


question 4:taglib 标签找不到

resolve

导入依赖

<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

question 5:jdbcTemplate 数据库字段与 model 字段不一致

cause

数据库字段:

image-20230405102356387.

model 字段:

image-20230405102430899.

resolve

Using the JDBC Core Classes to Control Basic JDBC Processing and Error Handling.

package com.rnny.utils;

import com.rnny.model.User;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;

public class UserRowMapper implements RowMapper<User> {

    @Override
    public User mapRow(ResultSet rs, int rowNum) throws SQLException {
        User user = new User();
        user.setId(rs.getInt("id"));
        user.setUsername(rs.getString("name"));
        user.setPassword(rs.getString("password"));
        return user;
    }
}

查询一个对象

public User selectByPrimaryKey(int id) {
    User user;
    String sql = "select * from user where id = ?;";
    user = jdbcTemplate.queryForObject(sql, new UserRowMapper(), id);
    return user;
}

查询多个对象

public List<User> getAll() {
    List<User> userList = new ArrayList<>();
    String sql = "select id, name, password from user;";
    userList = jdbcTemplate.query(sql, new UserRowMapper());
    return userList;
}

标签:web,resolve,Tomcat,SpringMVC,user,集锦,sql,Servlet,User
From: https://www.cnblogs.com/rnny/p/17289679.html

相关文章

  • java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/ConditionalTagSuppor
    1.报错截图2.问题原因缺少对应的类3.问题解决<dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><......
  • 一个简单SpringMVC的实现
    之前学习时候,是使用老师的自定义的一个SpringMVC模式,今天突然好奇,官方的SpringMVC架构咋弄,于是带着好奇的心去实现完成它其实这个模式也比较简单1:首先,我们创建一个maven,web的网页项目,JDK选择1.8版本   2:在创建完之后,鼠标右键点击main目录,同时选择java和resource包按回车......
  • Sevlet规范:HttpServlet类 和 HttpServletRequest接口 源码解析
    Sevlet规范:HttpServlet类和HttpServletRequest接口源码解析每博一文案命运总是不如人愿,但往往是在无数的痛苦总,在重重的矛盾和艰辛中,才是人成熟起来。你,为这瞬间的辉煌,忍耐了多少暗淡无光的日月,你会死亡,但你也会证明生命有多强大。一次邂逅,一次目光的交融,就是永远的合二为......
  • 如何进行SpringMVC异步编程
    前言SpringMVC是我们平时用的最多的异步编程框架,但是我们在使用的时候基本上只是用到了它的同步编程。一般情况下是够用的,但是在并发量比较大的时候可能就不会够用了,因为一个请求会占用一个tomcat线程,这个时候我们可以尝试使用异步编程的方式来提高吞吐量。环境准备maven依赖:......
  • Quarkus系列—— RESTEasy与SpringMVC(二)
    简述RestEasy在Quarkus中的作用跟SpringMVC在SpringBoot中类似。简介RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTfulWebServices和RESTfulJava应用程序。我们以第一部分的代码为例来介绍如何通过RESTEasy的各种注解来开发Web应用,因为RESTEasy实现了JAX......
  • SpringMVC大文件上传解决方案支持分片断点上传
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传  可以带参数        [HttpPost("upload")]        publicJsonResultuploadProject(I......
  • leetcode题中的逆向思维——集锦
    417.太平洋大西洋水流问题虽然题目要求的是满足向下流能到达两个大洋的位置,如果我们对所有的位置进行搜索,那么在不剪枝的情况下复杂度会很高。因此我们可以反过来想,从两个大洋开始向上流,这样我们只需要对矩形四条边进行搜索。搜索完成后,只需遍历一遍矩阵,满足条件的位置即为两个......
  • springmvc中前端调用controller方法路径问题
          以前学习springmvc时没有理解前端访问controller中方法路径问题,做项目时刚好遇到,百度了一下没有找到想要的答案,后来突然就顿悟了。。。。。,虽然很基础但还是记录了一下,大佬请见谅。controller中主要用@RequestMapping注解来定义访问路径,一般定义一个类加载路径......
  • springmvc中前端调用controller方法路径问题
          以前学习springmvc时没有理解前端访问controller中方法路径问题,做项目时刚好遇到,百度了一下没有找到想要的答案,后来突然就顿悟了。。。。。,虽然很基础但还是记录了一下,大佬请见谅。controller中主要用@RequestMapping注解来定义访问路径,一般定义一个类加载路径......
  • SpringMVC 中常用注解
    1、控制器类的注解(1)@Controller作用:修饰类,一个类被它修饰,就成了控制器类,负责接收和处理HTTP请求,可以返回页面和数据;(2)@RestController(@Controller+@ResponseBody的组合注解)作用:修饰类,一个类被它修饰,就成了控制器类,只返回给用户数据,默认将返回的对象数据转换为jso......