4

我正在运行此代码,但它不工作。我正在使用带有 Eclipse 的 Glassfish 无法使用 GlassFish Server Open Source Edition 3.1.2.2 编译 jsp,它在此处显示以下异常代码

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page language="java" import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>



<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>GlassFish JSP Page</title>

  </head>
  <body>

  <%
   try {     
            Class.forName("com.mysql.jdbc.Driver").newInstance();            
        Connection C =DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root",""); 
            }       catch (Exception E) { 
      System.err.println("Unable to load driver."); 
      E.printStackTrace(); 
            } 

           try{
            Statement stmt=null;
            int val=stmt.executeUpdate("insert into reg(Name,Fname)       values('"+haroon+"','"+hussain+"')");
        if(val==1){
            System.out.println("Data has been inserted :)");
        }else {

            System.out.println("data has not been inserted. :( ");
        }

    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("Cant inserted");
    }

  %>

  </body>
</html> 

glassfish 显示的异常

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message

descriptionThe server encountered an internal error () that prevented it from     fulfilling this request.

exception 
org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP

 PWC6197: An error occurred at line: 15 in the jsp file: /index.jsp
PWC6199: Generated servlet error:
string:///index_jsp.java:72: cannot find symbol
symbol  : variable haroon
location: class org.apache.jsp.index_jsp

PWC6197: An error occurred at line: 15 in the jsp file: /index.jsp
PWC6199: Generated servlet error:
string:///index_jsp.java:72: cannot find symbol
symbol  : variable hussain
location: class org.apache.jsp.index_jsp



 note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.2.2 logs.

请任何人解决这个问题

4

2 回答 2

2

您正在使用变量haroonhussain并且您从未在 JSP 中声明它们。编译器无法在生成的 servlet 代码中的任何位置找到该变量。


出于这些众所周知的各种原因,我强烈反对编写脚本(除非您这样做是为了学习目的)。

关于这一点,如果您将一个变量传递到您的 JSP 页面,并且您想将它保存到您的数据库中,那么这样就足够了:

<%
    String haroon = request.getParameter("haroon");
    String hussain = request.getParameter("hussain");
%>

(在进行数据库连接之前添加标签)。您现在可以通过在URL(调用 JSP)上附加 2 个参数 (haroon和) 来传递值。hussain

于 2012-09-20T18:13:31.560 回答
1

就我而言,我试图在 jsp 中初始化 TreeSet。

TreeSet<String> treeCategories = new TreeSet<>();

这将得到:org.apache.jasper.JasperException:PWC6033:JSP 的 Javac 编译出错||PWC6199:生成的 servlet 错误...因为“钻石”或“<>”。

我不记得确切的 java 术语或用法,但 <> 是某种模板或泛型或类似的东西,当 java 真正需要时,至少在我的情况下,知道它是什么:

TreeSet<String> treeCategories = new TreeSet<String>();

那可行。

于 2016-10-28T07:21:33.840 回答