首次java项目出现的问题(全部写在一起)

本文档详细记录了在首次进行Java Web项目开发时遇到的三个主要问题及其解决方法:1) AOP依赖异常,通过导入正确版本的spring-aop依赖解决;2) 前端数据显示空数据,原因是Mybatis自动映射级别设置不当,调整为PARTIAL即可;3) 乱码问题,通过配置web.xml中的过滤器、数据库和IDE编码设置来确保统一的UTF-8编码。这些解决方案有助于避免和解决类似问题。
摘要由CSDN通过智能技术生成

首次java项目出现的问题(全部写在一起)

  1. aop依赖异常
javax.servlet.ServletException:Servlet.init() for 
servlet despatcherServlet threw exception java.lang.
NoSuchMethodError: org.springframework.aop.
framework.AopProxyUtils.getSingletonTarget
(Ljava/lang/Object;)Ljava/lang/Object

此异常是在ssm整合中因为pom.xml没有导入对应spring-aop依赖或者版本错误导致的前端网页报错。

解决办法:导入对应依赖包

 <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>4.3.12.RELEASE</version>
 </dependency>

Spring 4.2.4 RELEASE(开发时用的),4.3.12.RELEASE(部署后,可以直接使用它)4.2.4版本中发现没有对应的getSingletonTarget方法,所以在程序运行时会报此错误,该依赖包导入之后问题就搞定!

2.前端显示空数据异常

在这里插入图片描述

在这里插入图片描述
在此能明显的看出后端数据是对应的五条显示出来了,且打印出了5个1,说明在firmList集合中存在五个size,那么为什么前端显示是空的呢。
解决思路:
1.判断后端数据是否能正常输出显示在后端控制台(可以,next)
2.判断controller层中model.addObject设置的属性名是否与jsp页面中显示的集合名一直(可以,next)
3.判断mapper层与service层及impl层是否输入层层调用且对应(可以,最后一步)
4.(苦思许久发现最后是出现在了mybatis配置文件中的自动映射那)

  <settings>
 <!-- 配置mybatis的log实现为LOG4J -->
<!-- <setting name="logImpl" value="LOG4J"/> -->
 <setting name="logImpl" value="STDOUT_LOGGING"/>
<!-- 设置resultMap的自动映射级别为NONE(禁止自动匹配) -->
 <setting name="autoMappingBehavior" value="PARTIAL"/>
    </settings>

当时因为自动映射级别是禁止的,所以才出现的该问题,圆满解决!

3.乱码问题(以下为个人总结的几点乱码问题)

配置web.xml中配置乱码过滤器

  <!-- 解决response中文乱码 -->
    <!-- 字符过滤器 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
 <filterclass>org.springframework.web.
 filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

如问题没解决则可能是以下几点未配置好导致乱码。

  • 后端插入到数据库乱码
    这种乱码是因为在设置编码未统一设置一致编码导致乱码,可在数据库中(个人用的mysql)去设置该表的字符集为UTF-8并在idea开发工具中File | Settings | Editor | File Encodings中为该项目编码统一设置为utf-8(保证编码一致性)

  • 后端传入数据到前端页面乱码
    此乱码极有可能是因为后端插入到数据库乱码或因为未设置编码格式导致乱码
    策略:
    手动设置编码格式

  request.setCharacterEncoding("utf-8");
  response.setCharacterEncoding("utf-8");
  • 前端页面未设置编码格式导致乱码
    设置对应编码utf-8
 <%@ page language="java" 
contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8" %>
<% request.setCharacterEncoding("UTF-8"); %>
<%response.setContentType("text/html;charset=utf-8");%>

问题搞定!

以上便是第一个项目遇到的问题,及解决方法!希望能对亲们有所帮助~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值