目录
- 引出:bug::bug::bug:
- Tomcat开发的bug汇总
- session不能转换成String类型
- 在servlet的if处理流程中,没有加return
- 后端传给jsp的数据,前端jsp不显示
- jsp的包没有导,用foreach方法的时候报错
- jsp的forEach方法报错
- jsp用foreach的时候,没有生成首行一段话
- 项目启动就报错----@WebServlet()路径配置的问题
- 总结
引出🐛🐛🐛
java的web开发,涉及到前端后端各种交互,路径的转发,重定向等带来的问题,以及需要配置xml文件,导包等很多问题,本文尝试总结在Java网络开发中遇到的bug
Tomcat开发的bug汇总
session不能转换成String类型
java.lang.ClassCastException: org.apache.catalina.session.StandardSessionFacade cannot be cast to java.lang.String
保存到session的时候,不小心把session存进了session里,然后拿的时候用(String)类型转换
// 验证码存到session空间中
HttpSession session = req.getSession();
session.setAttribute("yzm", session);
// +++++判断验证码是否正确
HttpSession session = req.getSession();
// 从session中获取验证码
String yzm = (String)session.getAttribute("yzm");
在servlet的if处理流程中,没有加return
问题描述:
如果在servlet中,需要if处理的业务流程,没有加return,通常会引起其他错误,因为没有return,程序会继续往下执行;如下图的例子,这里用户名密码输入错误,没有加return,导致即使非法用户也能登陆进入系统。
后端传给jsp的数据,前端jsp不显示
问题描述:
后端传给jsp的数据,前端jsp没有显示出来,原因是官方生成的web.xml文件版本低,很多功能不支持,需要更换成下面这种
web.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>
jsp的包没有导,用foreach方法的时候报错
javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag
问题描述:
在jsp文件中,如果注释掉foreach部分的代码,前端jsp文件就能正常进入,也能显示从后端拿到的信息;
但是如果加上foreach部分的代码,就报错,后台的错误指向了servlet的转发部分;但其实是能进到这里的,所有这个问题查了好久,以为是req的问题,后来以为是foreach语法写错的问题;
最后突然想到,可能是xml包没导,最后补充了jsp相关的包,问题解决。
req.getRequestDispatcher("/news/list.jsp").forward(req, resp);
jsp相关的包:
<!-- jsp导包-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<!-- 加provided-->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
jsp的forEach方法报错
org.apache.jasper.JasperException: 在 [57] 行处理 [/news/list.jsp] 时发生异常
语法错误,多打印了一个h
jsp用foreach的时候,没有生成首行一段话
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
问题描述:
前端jsp能拿到后端发来的数据,但是没法进入forEcah方法中,不生效;
项目启动就报错----@WebServlet()路径配置的问题
(1)@WebServlet(value = “/us”) 中反斜杠 / 没有写;
(2)两个Serlet 指向同一个路径;
(3)DBUtils里面的静态方法出问题;
总结
🐛 bug不可怕,找到它并消灭就好了!