由于此代码,无法编译 JSP



我今天正试图让自己参与学习 JSP。

这是我正在测试的 JSP 代码:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page </title>
    </head>
    <body>
        <%! Queries x = new Queries(); %>
<TABLE BORDER=2>
<%
    for ( int i = 0; i < 20; i++ ) {
        %>
        <TR>
        <TD>Number</TD>
        <TD><%= i+1 %></TD>
        </TR>
        <%
    }
%>
</TABLE>
             <form action="parser">
            <p>Name:<input type="text" name="userName"></p>
            <p>Password:<input type="text" name="passWord"></p>
            <p><input type="submit" value="login"></p>
    </body>
</html>

当我尝试初始化时,问题就在这里:

<%! Queries x = new Queries(); %>

该类在我的包本身中。

查询.java

public class Queries {
 public String RetrieveNickName()  {
         Database conn = new Database(); 
         String sql = "SELECT nickname from user where uid = 1";
         String x = conn.querySQL(sql).toString();
         return x;
       } 
}

当我尝试运行它时,我收到了此错误。

HTTP Status 500 - Unable to compile class for JSP: 

type Exception report
message Unable to compile class for JSP: 
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP: 
An error occurred at line: 16 in the jsp file: /index.jsp
Queries cannot be resolved to a type
13:         <title>JSP Page </title>
14:     </head>
15:     <body>
16:         <%! Queries x = new Queries(); %>
17: <TABLE BORDER=2>
18: <%
19:     

An error occurred at line: 16 in the jsp file: /index.jsp
Queries cannot be resolved to a type
13:         <title>JSP Page </title>
14:     </head>
15:     <body>
16:         <%! Queries x = new Queries(); %>
17: <TABLE BORDER=2>
18: <%
19:     

Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

https://i.stack.imgur.com/QXMvc.jpg

请确保您先导入了该类。 <%@ page import="<your package>.Queries" %>

也许您尚未导入包:
<%@page contentType="text/html" pageEncoding="UTF-8"% import="packageName.Queries">

问题似乎是默认包。默认包对 server.so 不可见,您应该将其放在任何命名包中,类似于此

/WEB-INF/classes/MyPackage/Queries.claass

最新更新