SpringMVC 结合 Servlet 不成功问题集锦
问题集锦
question 1:Tomcat 10 版本太高
cause
 .
.
主要就是说:Tomcat 10 之前的用户如果使用 Tomcat 10 就需要将 javax.* 的导入转变为 jakarta.*。这样才能将代码在 Tomcat 10 中部署,还给你了一个迁移工具migration tool 来帮助你迁移代码。
resolve
换 Tomcat 9 版本及以下。
咱们主要来学习如何使用 Tomcat 来部署运行项目,如果自己还需手动迁移代码,那么花费的时间有点得不偿失了(大佬除外)。
question 2:idea 的 web 项目标志没有了蓝点 .
.
cause
正确的 web 项目: .
.
错误的 web 项目: .
.
resolve
Project Structure -> Artifacts
 .
.
Project Structure -> Modules -> 选择自己具体的 Module -> 点击 + 号

 .
.
注意一下,一般是没有什么问题。
 .
.
别忘记了 Apply!Apply!Apply!,别问为什么,因为我也忘了。
 .
.
成功了!

 .
.
question 3:路径映射不正确
cause
org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping for GET /login
你确定你的环境配置没有问题,但是报 404 问题,这可能是一个解决方案!
resolve
SpringMVC---彻底解决/和/*的问题!到底该用哪一个?.
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>
原文就看懂了这一句话:
 .
.
question 4:taglib 标签找不到
resolve
导入依赖
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>
question 5:jdbcTemplate 数据库字段与 model 字段不一致
cause
数据库字段:
 .
.
model 字段:
 .
.
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;
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号