我目前收到错误,
java.sql.SQLException: Method 'executeQuery(String)' not allowed on prepared statement.
Run Code Online (Sandbox Code Playgroud)
因为我正在使用
PreparedStatement stmt = conn.prepareStatement(sql);
Run Code Online (Sandbox Code Playgroud)
还有
ResultSet rs = stmt.executeQuery(sql);
Run Code Online (Sandbox Code Playgroud)
在我的代码中.
我现在需要删除ResultSet行,但这使我不得不处理以下代码:
if (rs.next()) {
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("login.successful"));
request.getSession(true).setAttribute("USERNAME", rs.getString("USERNAME"));
request.getSession(true).setAttribute("BALANCE", rs.getString("BALANCE"));
request.setAttribute("msg", "Logged in successfully");
Run Code Online (Sandbox Code Playgroud)
我不确定我完全明白什么
if (rs.next())
Run Code Online (Sandbox Code Playgroud)
确实.有人可以向我解释这段代码吗?如果我对此有了更好的理解,我相信我会更好地了解如何使用用于rs的逻辑来处理PreparedStatement结果.此外,任何有助于改变逻辑的帮助也将受到高度赞赏.
在上一段代码中,我收到了标题中列出的完全相同的错误.
我的代码中有一个用户名验证器,但忘记包含以下代码:
password =ESAPI.validator().getValidInput("Login password", password, "Password", 20, false);
Run Code Online (Sandbox Code Playgroud)
添加后我解决了这个问题.
现在在我的下一个java页面中,我遇到了同样的问题并检查了代码,但如果我实际上遗漏了某些内容,则无法找到我所缺少的内容.
我与另一段正在处理的代码有同样的错误,并且能够解决它,因为我忘了包含另一行代码.
但是对于这段代码,我已经多次查看过,并且无法弄清楚它有什么问题.
这是代码:
package com.tunestore.action;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.util.MessageResources;
import org.owasp.esapi.ESAPI;
import com.tunestore.util.IWithDataSource;
public class RegisterAction extends Action implements IWithDataSource {
private DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) …Run Code Online (Sandbox Code Playgroud) java error-handling sqlexception resultset outofrangeexception
这是我的情景. 我有一个正常运行的工作登录表单.我试图安装ESAPI以保护表单.
这样做,现在当我尝试登录时,在浏览器中生成此消息:
java.lang.NoClassDefFoundError: org/owasp/esapi/ESAPI
at com.tunestore.action.LoginAction.execute(LoginAction.java:43)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.tunestore.servlet.PersistenceFilter.doFilter(PersistenceFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.owasp.esapi.ESAPI
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1671)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
... 31 …Run Code Online (Sandbox Code Playgroud) java eclipse error-handling noclassdeffounderror classnotfoundexception
当我尝试在我的网站上查看特定页面时,它在浏览器中显示为空白但在Eclipse中从tomcat生成一条长错误消息.
即将出现的页面不是我已修改过的页面.我修改了一些其他页面并且它们工作正常但是现在我已经修改了它们,这个特定的页面在访问它时会产生错误.
错误很长,所以我只想发布我认为重要的部分.如果需要更多错误,请告诉我.
我已经阅读了错误,但我不确定服务器究竟是在试图告诉我错误.
希望有人能够指出我正确的方向.提前谢谢你.
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:tunestore' did not find a matching property.
Run Code Online (Sandbox Code Playgroud)
Nov 22, 2011 6:25:28 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/root/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/tunestore/WEB-INF/lib/servlet-api-2.4.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
log4j:WARN No appenders could be found for logger (com.tunestore.util.DBUtil).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Run Code Online (Sandbox Code Playgroud)
Nov 22, 2011 6:25:37 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar
INFO: At least one JAR was scanned for TLDs yet contained …Run Code Online (Sandbox Code Playgroud)