从JSP中的包调用Java类

时间:2013-04-01 05:11:57

标签: html jsp lucene

我编写了一个JSP文件,该文件从用户那里获取查询并将其传递给Lucene索引搜索器。在传递查询时,它还传递了在用户键入查询时记录的另一个参数城市。 JSP代码如下:

result.jsp中

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*,java.io.*,parser.SearchDB,org.apache.lucene.analysis.*" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <%! String myQuery; String city; String latitude; String longitude; %>
  <%
      myQuery=request.getParameter("myQuery");
      city=request.getParameter("city");
      latitude=request.getParameter("latitude");
      longitude=request.getParameter("longitude");
      Cookie cookies [] = request.getCookies();
      Cookie myCity=null;
      Cookie myLat=null;
      Cookie myLong=null;
      if(city!=null)
       {
         myCity=new Cookie("city",city);
         myCity.setMaxAge(365*24*60*60);
         response.addCookie(myCity);
         myLat=new Cookie("latitude",latitude);
         myLat.setMaxAge(365*24*60*60);
         response.addCookie(myLat);
         myLong=new Cookie("longitude",longitude);
         myLong.setMaxAge(365*24*60*60);
         response.addCookie(myLong);
       }
    else
       { 
         for (int i = 0; i < cookies.length; i++) 
         {   
               if (cookies[i].getName().equals("city"))
                  {
                    myCity=cookies[i];
                    city=myCity.getValue();
                  }
              else
                if(cookies[i].getName().equals("latitude"))
                 {
                      myLat=cookies[i];
                      latitude=myLat.getValue();
                 }
                else
                  if(cookies[i].getName().equals("longitude"))
                   {
                       myLong=cookies[i];
                       longitude=myLong.getValue();
                   }
             }
    }
  SearchDB s = new SearchDB();
  System.out.println("Query="+myQuery+" and City="+city);
  s.searchdb(myQuery, city);
%>

 <form name="frm" method="post" action="result.jsp">
 <table width="100%" border="0" cellspacing="0" cellpadding="0">
   <tr>
   <td width="22%">&nbsp;</td>
   <td width="78%">&nbsp;</td>
   </tr>
   <tr>
   <td>&nbsp; </td>
   <td><input type="text" name="myQuery" placeholder="Type here"></td>
   </tr>
   <tr>
   <td>&nbsp;</td>
   <td><input type="submit" name="submit" value="Submit"></td>
   </tr>
   <tr>
   <td>&nbsp;</td>
   <td>&nbsp;</td>
   </tr>
   </table>
   </form>
   <html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>Insert title here</title>
   </head>
   <body>
   <p>Query phrase is : <%=myQuery%></p>
   <p>User's city : <%=city%></p>
   <p>User's latitude : <%=latitude%></p>
   <p>User's longitude : <%=longitude%></p>
   </body>
  </html>

此处,SearchDB是包含在我上面导入的名为parser的包中的类。它基本上接收带参数city的查询并在Lucene索引中搜索。

问题是,在服务器上运行此文件 result.jsp 时,它会重复发出错误,如下所示:在实例化类SearchDB的对象的行中发生异常以及其他许多事情显示rootcause为 javax.servlet.ServletException:java.lang.NoClassDefFoundError:org / apache / lucene / analysis / Analyzer 虽然我没有在JSP代码中使用任何Lucene类。

我不知道究竟是什么导致了错误。所以我问是否有人可以帮助我找到错误并修复它。谢谢。

0 个答案:

没有答案