Jsp+servlet+javabean使用Lucene3.6.2做一个简单数据库搜索的总结(2)

来源:互联网 发布:网络本科是什么意思 编辑:程序博客网 时间:2024/05/18 04:58

下面看一下jsp的代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.io.File"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.DriverManager"%>
<%@ page import="java.sql.ResultSet"%>
<%@ page import="java.sql.Statement"%>
<%@ page import="org.apache.lucene.analysis.Analyzer"%>
<%@ page import="org.apache.lucene.analysis.standard.StandardAnalyzer"%>
<%@ page import="org.apache.lucene.analysis.standard.StandardAnalyzer"%>
<%@ page import="org.apache.lucene.document.Document"%>
<%@ page import="org.apache.lucene.document.Field"%>
<%@ page import="org.apache.lucene.index.IndexReader"%>
<%@ page import="org.apache.lucene.index.IndexWriter"%>
<%@ page import="org.apache.lucene.index.IndexWriterConfig"%>
<%@ page import="org.apache.lucene.queryParser.QueryParser"%>
<%@ page import="org.apache.lucene.search.IndexSearcher"%>
<%@ page import="org.apache.lucene.search.Query"%>
<%@ page import="org.apache.lucene.search.ScoreDoc"%>
<%@ page import="org.apache.lucene.store.FSDirectory"%>
<%@ page import="org.apache.lucene.util.Version"%>


<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'xian.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
  <jsp:useBean id="ss" class="test.Luce36" scope="page"></jsp:useBean>
    This is my JSP page. <br>
  <%
String videoname=(String)session.getAttribute("s1");
String num1=(String)session.getAttribute("s2");
String num2=(String)session.getAttribute("s3");
out.print(videoname);
out.print(num1);
out.print(num2);
out.print("您输入的电影名称是:"+videoname);
String result=new String();

try {
 result=ss.sear(videoname);
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
out.print(result);
%>
  </body>
</html>

这个里面一定要import相关的文件,不然是不能运行成功的。继续调试运行,报错:java.lang.OutOfMemoryError: Java heap space,针对这个问题,有四点解决办法:

解决方法:

1、修改eclipse.ini

在Myeclipse安装目录下G:\MyEclipse8.5\Genuitec\MyEclipse 8.5有一个myeclipse.ini配置文件,设置如下:

-vmargs
-Xmx512m
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=64m

2、设置Default VM Arguments

在myEclipse中,打开Windows-> Preferences->Java->Installed JREs->点击正在使用的JDK->Edit->Default VM Arguments文本框中输入:-Xms64m -Xmx256m

3、如果是web工程还报内存溢出,可能就要设置tomcat内存。

(1)tomcat的安装根目录%tomcat%bin/catalina.bat文件,SET JAVA_OPTS 一行;

(2)myeclipse配置web服务器配置 Window—Preferences—Myeclipse—Servers—tomcat 5.x—JDK的Optional Java VM arguments配置为:

-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

4、如果是web工程还报内存溢出,可能是tomcat下加载的工程太多,可以删除部分工程以释放内存,而且可以提高服务器的速度。

好了,现在重启tomcat,结果出来了(关键字是“搜索”):上面就是搜索“搜索”关键的结果。


解决方法:

1、修改eclipse.ini

在Myeclipse安装目录下G:\MyEclipse8.5\Genuitec\MyEclipse 8.5有一个myeclipse.ini配置文件,设置如下:

-vmargs
-Xmx512m
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=64m

2、设置Default VM Arguments

在myEclipse中,打开Windows-> Preferences->Java->Installed JREs->点击正在使用的JDK->Edit->Default VM Arguments文本框中输入:-Xms64m -Xmx256m

3、如果是web工程还报内存溢出,可能就要设置tomcat内存。

(1)tomcat的安装根目录%tomcat%bin/catalina.bat文件,SET JAVA_OPTS 一行;

(2)myeclipse配置web服务器配置 Window—Preferences—Myeclipse—Servers—tomcat 5.x—JDK的Optional Java VM arguments配置为:

-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

4、如果是web工程还报内存溢出,可能是tomcat下加载的工程太多,可以删除部分工程以释放内存,而且可以提高服务器的速度。