我最终得到了一个500的错误,这取决于stacktrace,这可能是一个数据格式错误,但我所有的变量都是字符串,所以我根本看不到错误在哪里。此外,我的连接jdbc很好,因为在调试模式下,我可以看到数据库的值,但一旦它进入JSP中,它就不再工作了。你能帮帮我吗?
我的servlet:
import java.io.IOException;
import bdd.LivresBDD;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import model.Livres;
/**
* Servlet implementation class test
*/
public class test extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public test() {
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
LivresBDD tableLivres = new LivresBDD();
request.setAttribute("livre", tableLivres.recupererLivres());
this.getServletContext().getRequestDispatcher("/WEB-INF/bonjour.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Livres livre = new Livres();
livre.setTitre(request.getParameter("titre"));
livre.setAuteur(request.getParameter("auteur"));
livre.setGenre(request.getParameter("genre"));
LivresBDD tableLivres = new LivresBDD();
tableLivres.ajouterLivres(livre);
request.setAttribute("livre", tableLivres.recupererLivres());
this.getServletContext().getRequestDispatcher("/WEB-INF/bonjour.jsp").forward(request, response);
}
}
My jsp files :
<%@ page pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
<%@ include file="menu.jsp" %>
<p>Bonjour à vous !</p>
<p>
<ul>
<li value="${livre.titre}"></li>
</ul>
</body>
</html>
My beans :
package model;
public class Livres {
private String titre;
private String auteur;
private String genre;
public String getTitre() {
return titre;
}
public void setTitre(String titre) {
this.titre = titre;
}
public String getAuteur() {
return auteur;
}
public void setAuteur(String auteur) {
this.auteur = auteur;
}
public String getGenre() {
return genre;
}
public void setGenre(String genre) {
this.genre = genre;
}
}
My BDD connection :
package bdd;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import model.Livres;
public class LivresBDD {
private Connection connexion;
public List<Livres> recupererLivres() {
List<Livres> livres = new ArrayList<Livres>();
Statement statement = null;
ResultSet resultat = null;
loadDatabase();
try {
statement = connexion.createStatement();
// Exécution de la requête
resultat = statement.executeQuery("SELECT titre, auteur, genre FROM livres;");
// Récupération des données
while (resultat.next()) {
String titre = resultat.getString("titre");
String auteur = resultat.getString("auteur");
String genre = resultat.getString("genre");
Livres livre = new Livres();
livre.setTitre(titre);
livre.setAuteur(auteur);
livre.setGenre(genre);
livres.add(livre);
}
} catch (SQLException e) {
} finally {
// Fermeture de la connexion
try {
if (resultat != null)
resultat.close();
if (statement != null)
statement.close();
if (connexion != null)
connexion.close();
} catch (SQLException ignore) {
}
}
return livres;
}
private void loadDatabase() {
// Chargement du driver
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
}
try {
connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/bibliotheque", "root", "");
} catch (SQLException e) {
e.printStackTrace();
}
}
public void ajouterLivres(Livres livre) {
loadDatabase();
try {
PreparedStatement preparedStatement = connexion.prepareStatement("INSERT INTO livres(titre,auteur,genre) VALUES(?, ?, ?);");
preparedStatement.setString(1, livre.getTitre());
preparedStatement.setString(2, livre.getAuteur());
preparedStatement.setString(3, livre.getGenre());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
My stacktrace :
État HTTP 500 – Erreur interne du serveur
Type Rapport d'exception
message Une exception s'est produite lors du traitement de [WEB-INF/bonjour.jsp] à la ligne [13]
description Le serveur a rencontré une erreur interne qui l'a empêché de satisfaire la requête.
exception
org.apache.jasper.JasperException: Une exception s'est produite lors du traitement de [WEB-INF/bonjour.jsp] à la ligne [13]
10: <p>Bonjour à vous !</p>
11: <p>
12: <ul>
13: <li value="${livre.titre}"></li>
14: </ul>
15: </body>
16: </html>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:611)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:500)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
com.octest.servlets.test.doGet(test.java:32)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:663)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
cause mère
java.lang.NumberFormatException: For input string: "titre"
java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
java.base/java.lang.Integer.parseInt(Integer.java:652)
java.base/java.lang.Integer.parseInt(Integer.java:770)
jakarta.el.ListELResolver.coerce(ListELResolver.java:150)
jakarta.el.ListELResolver.getValue(ListELResolver.java:67)
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:125)
org.apache.el.parser.AstValue.getValue(AstValue.java:169)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:190)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:709)
org.apache.jsp.WEB_002dINF.bonjour_jsp._jspService(bonjour_jsp.java:141)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:467)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
com.octest.servlets.test.doGet(test.java:32)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:663)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de ce serveur.
Apache Tomcat/10.0.4
在这种情况下,您必须从jstl中使用类似于
的迭代,例如:
下面是如何构建
问题内容: 我目前正在开发具有XMLBeans绑定而不是默认JAXB绑定的Apache CXF Web服务。我正在使用Java 1.6编译和运行代码。我在运行时收到以下代码段的“ DOM Level 3 Not Implemented”错误: JBoss中显示的确切错误如下: 从上面的错误消息中,很明显,由于在运行时未找到DOM 3级API,因此getTextContent方法引起了异常。如何消除
问题内容: 我进行了搜索,发现使用jdk 7的QuickTip:VerifyError : 如果您遇到以下类型的错误 那么一个简单的解决方案是添加以下默认JVM参数 如果像我一样在eclipse中进行操作,则转到Window-> Preferences-> Installed JREs->并添加默认参数。 此设置有什么作用?Oracle 刚刚提到它是具有StackMapTable属性的新型类型检查
在TeamCity中运行MSpec构建步骤时,我在TeamCity日志中发现以下错误: 我已经对和MSpec config文件,但它似乎没有帮助。 MSpec运行程序正在本地引用构建代理上的编译DLL,该构建代理在Visual Studio中本地正确运行。有人能解释这个错误的含义以及我如何解决它吗?
我正在用IntelliJ IDEA Ultimate制作一个Java web项目。我有一个类,它有一个方法,该方法接受两个字符串作为输入,查询数据库,并返回一个int值。(这是一个登录方法——接收用户名和密码——如果它们有效,它应该返回用户名的int,否则为0)。 我通过用main方法从Tester类中调用它来测试这个方法,它返回了预期值。然而,当从jsp页面调用这个方法时,它会给我的SQL驱动程
在错误日志中生成以下内容: PHP警告:文件\u获取\u内容(https://www.[URL].com)[function.file get contents]:无法打开流:HTTP请求失败!HTTP/1.1500/Applications/MAMP/htdocs/test中的内部服务器错误。第13行的php”; 但是,该站点在浏览器中运行良好。 我也试过使用cURL。我在日志文件中没有发现任何
运行单个测试时引发错误: 通过点击方法名称旁边的绿色三角形按钮启动测试。 但是如果你通过maven(生命周期)对整个项目进行测试- 要使用JUnit,需要使用以下依赖项: 负责这个项目的其他团队成员(一个存储库,不同的分支)没有这样的问题。是什么导致了这个错误?使用了IDE-IntelliJ IDEA UPD:我什么都试过了。删除。idea文件夹没有效果,也没有重新下载所有依赖项。清除缓存也没有效