精华内容
下载资源
问答
  • 7 X64 旗舰版(并没有什么,只需要注意版本问题就ok了) 1.JDK------------jdk1.6.0_43(64位) 2.Tomcat--------apache-tomcat-7.0.62 3.Maven---------apache-maven-3.2.3(64位) 开发工具的是Eclipse, Ok

    这里注明Java开发需要的工具和环境

    操作系统:

    windows 7 X64 旗舰版(并没有什么卵用,只需要注意版本问题就ok了)

    1.JDK------------jdk1.6.0_43(64位)

    2.Tomcat--------apache-tomcat-7.0.62

    3.Maven---------apache-maven-3.2.3(64位)

    开发工具用的是Eclipse,

    Ok,步入正题,开始环境部署

    1.JDK安装

    安装后默认目录应该是C:\Program Files\Java

    目录下会有两个文件夹


    然后回到桌面右键计算机点击属性右侧选中高级系统设置


    如下图,选中环境变量


    选中系统变量下的新建


    变量名:JAVA_HOME

    变量值:C:\Program Files\Java\jdk1.6.0_43

    点确定


    再点击新建

    变量名:CLASSPATH

    变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

    看清楚前面还有个".",不要忘记加上去啊。


    然后找到Path点击编辑

    在弹出的变量值里最后面加上%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

    然后点确定,退出高级系统设置

    按win+R键搜索CMD

    在命令框中输入java -version
    然后回车
    出现以下信息就算大功告成啦



    OK,大功告成,后续讲解tomcat环境部署。


    展开全文
  • 这是我看到的最简单的Jsp环境配置,上述软件版本,傻瓜式安装就是了,根本不用手动设置环境变量什么的。注意:利用下文中的first.jsp例子时,有两点要注意,一是把中文的双引号替换为英文的,在macromedia中很容易...

    这是我看到的最简单的Jsp环境配置,用上述软件版本,傻瓜式安装就是了,根本不用手动设置环境变量什么的。

    注意:利用下文中的first.jsp例子时,有两点要注意,一是把中文的双引号替换为英文的,在macromedia中很容易看出来,有很多个;

    二是,数据库的用户名和密码要替换为你自己的。

    JSP、TOMCAT、MYSQL、fileupload、jxl的配置、编程、部署、调试及入门教程

    强烈推荐MYECLIPSE8.5+TOMCAT 7+MYSQL 5.5,我这认为这三个一起用配置起来是最轻松的,配置工作最少的。尤其是TOMCAT 7,一安装完就能直接用,根本无需配置!而且也没有什么BUG,用起来挺好的。很多老的教程中,会让你配置一大堆东西,相信我,其实根本不需要! 安装JDK 6.0这个是必备的,我装的是jdk-6u1-windows-i586-p。如果你不非要追求最新版本,就也装这个吧,这样的话,如果你严格按照本文来配置开发环境,我保证是绝无问题的。 安装MYECLIPSE 8.5去网上下个,安装起来基本不用动脑。 安装TOMCAT 7直接去官网(tomcat.apache.org)下载,我用的是apache-tomcat-7.0.23。我的安装目录是D:\Tomcat7,这个目录下方会用到。安装后无须任何配置!TOMCAT会在开始菜单中创建一个叫welcome的快捷方式,运行它如果能看见tomcat的欢迎网页,就说明没问题。 安装MySQL到MySQL的官网(www.mysql.com)上下载mysql-5.5.19-win32.exe和mysql-connector-java-5.1.18.zip。运行mysql-5.5.19-win32.exe进行MYSQL的安装,整个过程是比较智能化的,我挑必须注意的地方说下:安装完后会出现个配置向导的选项(Configure the MySQL Servernow),请勾选立即配置你的MySQL。有些人说安装完MySQL后无法启动,原因就在于没有配置MySQL。点击“Finish”完成安装,并开始配置MySQL,点“Next”,进入配置类型选择页面。选“Detailed configuration”(详细配置)点“Next”,进入服务类型选择页面。选“Developer Machine”(开发者机器),这样占用系统的资源不会很多点“Next”后,进入数据库用法选择页面。选择“Multifunctional Database” 点“Next”,进入选择InnoDB数据存放位置页面 不用更改设置,直接放在Installation Path安装目录里即可,然后点“Next”,选择MySQL的同时联接数选择“Manual Setting”,设置为100(根据自己需要,酌情设置)点“Next”,配置MySQL在TCP/IP通讯环境中的端口选择默认的3306端口即可。点“Next”,选择MySQL中的字符设置注意,这里的选择将会影响你是否能在MySQL中使用中文。选择utf-8字符集以便支持简体中文(JSP里经常用utf-8),点“Next”,设置Windows服务选项注意,这里的选择很关键。“Install As Windows Service”一定要勾选,这是将MySQL作为Windows的服务运行。 “Service Name”就用默认的“MySQL” 下面的“Launch the MySQL Serverautomatically”一定要勾选,这样Windows启动时,MySQL就会自动启动服务,要不然就要手工启动MySQL。     许多人说安装MySQL后无法启动、无法连接、出现10061错误,原因就在这里。     点“Next”,设置根帐号root的登录密码(MySQL默认的账号名就是root) “Modify Security Settings”是设置根帐号的密码,输入你设定的密码即可。这个密码要记好,以后会经常用得到的!“Create An Anonymous Account”是创建一个匿名帐号,这样会导致未经授权的用户非法访问你的数据库,有安全隐患,建议不要勾选。 点“Next”,MySQL配置向导将依据你上面的所有设定配置MySQL,以便MySQL的运行符合你的需要 点“Execute”开始配置,当出现“Service started successfully”时,说明你的配置完成,MySQL服务启动成功 点“Finish”完成,整个MySQL的配置完成,剩下的就是用MySQL客户端连接MySQL服务器,然后使用了。 安装JDBC驱动:说白了,就是得让TOMCAT能认得出你的MYSQL。    解压mysql-connector-java-5.1.18.zip(解压后有好几个文件,不用想太多,我们只用得到mysql-connector-java-5.1.18-bin.jar),把mysql-connector-java-5.1.18-bin.jar放到D:\Tomcat7\lib(这个目录要根据你的TOMCAT的安装目录来变,别死脑筋)下面。 查看并启动MySQL服务:在Windows XP下安装完MySQL后,它就已经自动启动服务了,并且在开始菜单中有其客户端的快捷方式连接。可以通过Windows的服务管理器查看。“开始”-“运行”,输入“services.msc”,回车。     弹出Windows的服务管理器,然后就可以看见服务名为“mysql”的服务项了,其右边标明“已启动”     在开始菜单-所有程序-MySQL-MySQL Server 5.5里有个叫MySQL Command Line Client的快捷方式,运行它,你会发现系统在跟你要密码,输入安装时设置的密码即可。 入门教程数据库的使用在运行MySQL Command Line Client后打开的命令行窗口中,可以操作MySQL。使用mysql的基本命令(在mysql命令行编辑每输入完命令后最后一定要有分号——少部分命令可以没有) 显示数据库:show databases; ——就可以看到有哪些数据库了。 使用数据库:use 数据库名; ——可以进入数据库。显示数据表:show tables; ——可以看到当前数据库里有哪些数据表。 下面我们来建立一个数据库first,再建一个数据表about,然后在about表中填入一些数据,供下面测试用。 建库在mysql里建一个数据库first,以及在数据库里建一个表about 命令:create database first; 输入命令:use first; 使用first数据库; 在first库中建表 命令:create table about(id int(8)primary key,name varchar(10)); 在表中加入数据: 命令:insert into  about values(‘1026’,’laojiang’); JSP连接mysql在D:\Tomcat7\webapps目录下建立子目录myapp 进入D:\Tomcat7\webapps\myapp目录下 用记事本编写一个文件保存为first.jsp 代码如下:

    您的第一个字段内容为: 您的第二个字段内容为: 在浏览器中输入: http://127.0.0.1:8080/myapp/first.jsp 若出现: id|num 0 |laojiang 数据库操作成功,恭喜你。 以上操作是直接在TOMCAT的webapps中直接操作的。对于简单的JSP页面这样通常没有什么问题,但是对于SERVLET和JAVABEAN,特别容易出问题(至于原因嘛,你可以观察MYECLIPSE创建项目的目录与部署后的文件目录,层次是不一样的)。所以我推荐要把MYECLIPSE与TOMCAT关联起来,并通过部署网站功能来进行网站的调试。 补充介绍:退出命令:exit 为数据库设置权限(用户和密码) 命令:grant all privileges onfirst.* to test@localhost identified by  “123456”; 当你执行完这个命令以后,只要你再以用户名:test,密码:123456登录时你就只可以对first这个数据库操作,这样避开使用root账户。不过这功能我不怎么用。 建议的开发流程:在MYECLIPSE中新建-》部署-》运行 关联MYECLIPSE与TOMCAT:MyEclipse->Window->Preferences->MyEclipse->Servers->Tomcat->ConfigureTomcat 6.x,虽然我们装的是TOMCAT 7,不过这里当作6.X来配置也没有问题的,Trust me。然后,Tomcat home directory和Tomcat base directory都选择D:\Tomcat7(上文中我们的TOMCAT安装目录,记得不?当然你可以根据实际情况来更改),Tomcat temp directory可以用D:\Tomcat7\temp(如果没有的话自己建个),最后那个Optional program arguments不用填,然后点OK。在左侧项目列表中,右击要部署的项目名->MyEclipse->Add andremove project deployments->Add->Server栏里选Tomcat 6.x,单击FINISH。这样就部署好了,下次再要部署时,只需单击下列表里的服务器,然后单击Redeploy就行了。请细心比较直接在MYECLIPSE中新建的项目的目录结构与部署到TOMCAT中后的目录结构,最大的区别就是WebRoot目录下的内容被取了出来,所以这就是为什么在直接在MYECLIPSE中新建的项目里(即使是已经放在TOMCAT的WEBAPPS目录中了)运行SERVLET时会报错的原因,因为目录结构不同。而在通过MYECLIPSE的部署功能把网站进行部署后,就没有任何问题了!而且再注意看部署后的项目的web-inf/lib目录下的jar包,其实是我们用到的包被部署到这里来了,而在项目部署前的源文件夹里看web-inf/lib目录,里面其实是什么jar包都没有的(common-fileupload,common-io,jxl这三个包我都是放在tomcat/lib目录下,不放在项目web-inf/lib下的,在MYECLIPSE中使用时,我会手动导入这三个包,部署后,你就会发现这三个包被拷贝至部署后的项目的web-inf/lib下去了)。 Servlet:尽量使用MYECLIPSE来编写Servlet,因为MYECLIPSE可以自动添加相关的映射信息到web.xml中。MYECLIPSE自动添加的映射信息里有“/servlet”字样,据我调试,发现是多此一举,反而会导致报404错误!(404错误是一个关于路径的错误,说白了,就是系统找不到你指定的内容)注意有种情况特别要注意:SERVLET的代码是存在SRC目录中的,假设你的页面是放在WEBROOT下面的子文件夹PAGES中,那么在调用SERVLET(假设名为Upload)时,应当使用“../Upload”——也就是说,你得告诉系统,Upload这个SERVLET在当前页面的上一层目录里。如果不这样做,就会报404错误。 Common-fileupload,common-io,jxl这三个包的配置:前两个用于上传文件,最后一个用于操作EXCEL表。这三个包应当放在tomcat/lib下面,其它任何地方都不要放,然后在项目中手动添加这几个包。否则会导致冲突。这几个要保证包的唯一性。向TOMCAT部署网站后会发现这三个包被自动拷贝至部署后的项目的web-inf/lib下面了。曾经我也根据网上的说法,把这三个包放到JDK的目录里去或者放到项目目录里去,都会出现这样那样的错误。 推荐使用MySQL Workbench   在MYSQL官网上有得下,用它可以可视化编辑MYSQL数据库,真的是方便得不得了!
    展开全文
  • solr5.5+tomcat8+jdk1.8配置

    2017-05-08 13:05:45
    至于为什么solr5.5,因为最新的6.10,没有中文的分词器支持,这里使用的是ik分词器,刚好支持到5.5ik分词器下载地址 :https://github.com/EugenePig/ik-analyzer-solr5 , 下载完之后使用maven命令, mvn ...

    前言

    至于为什么要用solr5.5,因为最新的6.10,没有中文的分词器支持,这里使用的是ik分词器,刚好支持到5.5

    ik分词器下载地址 :https://github.com/EugenePig/ik-analyzer-solr5  , 下载完之后使用maven命令, mvn package 即可生成jar文件,或者下载我编译好的 http://pan.baidu.com/s/1o7P0846

    solr5.5下载地址: http://apache.fayea.com/lucene/solr/5.5.2/

    tomcat8下载,下载地址就不说了

    一:安装配置

    下载完成之后,解压solr文件,解压tomcat

     1.1 在tomcat安装solr,并且建立solrCore

    1. 把solr5.5目录下的server/solr-webapp/webapp 重命名为solr,并且放置到tomcat/webapp的目录下。 
    2. 打开tomcat/webapp/solr/WEB-INF/web.xml
    3. 新建一个文件夹,不要中文目录,用来做solrHome,也就是solrCore的实例存放位置
    4. 在tomcat/webapp/solr/WEB-INF/web.xml中配置solr的地址**(特别是迁移solr的时候主要要改地址啊)**
    5. 在tomcat/webapp/solr/WEB-INF/文件夹中,建立classes目录

    6. 把solr5.5/server/resource/log4j.properties 复制到上一步建立的classes目录中
    7. 把solr5.5/server/lib/ext/目录下的所有jar文件复制到tomcat/webapp/solr/WEB-INF/lib/中,这是一些日志用的jar包,不然启动报错。
    8. 这个时候,可以输入http://127.0.0.1:8080/solr/admin.html来访问到solr的控制界面了。
    9. 接下来就是创建solrCore。
    10. 目前solrHome目录是空的,我们创建一个空文件夹core1,这个就是我们的一个实例,然后把solr5.5/server/solr/configsets/sample_techproducts_configs/conf/ 这个文件复制到solrHome/core1中。
    11. 把solr5.5/server/solr/solr.xml复制到solrHome目录下。
    12. 在solr的管理控制台界面,添加一个core1
    13.  

    14. 这下就创建成功了一个实例core1

     

    1.2 安装ik中文分词器

    1. 准备好ik分词器的jar包,可以自己编译,也可以下载我生成的。然后把它复制到tomcat/webapp/solr/WEB-INF/lib里面。(千万不要复制到tomcat/lib中,这样会找不到lucene的类)
    2. 打开solrHome/core1/conf/managed-schema文件,在最下方,追加如下配置

    3.     <fieldType name="text_ik" class="solr.TextField">
              <analyzer type="index" useSmart="false"
                  class="org.wltea.analyzer.lucene.IKAnalyzer" />
              <analyzer type="query" useSmart="true"
                  class="org.wltea.analyzer.lucene.IKAnalyzer" />
          </fieldType>

       

    4. 启动tomcat,即可看到text_ik分词

    1.3 插入的文档必须与域相匹配

    域,我个人也称它为字段,它在solr中有特定的含义,就类似数据库中表的列一样,规范着写入的数据,我们先来做个例子。

    可以看到,我这次插入的文档,有id,title当然,在solr中,每一条记录都必须有着一个唯一的id,它就类似数据库中的主键,不可重复。这条记录的插入是成功的。

    但是,如果我把title改成title1,这就与定义的字段不一样了,就会报错,如下图所示

    可以看到,这里提示,未知的字段 title1.

     

    1.4 域的定义 field(solrHome/core1/conf/managed-schema文件中)

    先拿出一条配置来看一下

    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 

     认识一下这些属性

      name:域名

      type:域的类型,必须匹配类型,不然会报错

      indexed:是否要作索引

      stored:是否要存储

      required:是否必填,一般只有id才会设置

      multiValued:是否有多个值,如果设置为多值,里面的值就采用数组的方式来存储,比如商品图片地址(大图,中图,小图等)

     

    1.5 配置动态域 dynamicField

    同样的,也先拿出一条来看看

    <dynamicField name="*_i"  type="string"    indexed="true"  stored="true" multiValued="true" />

    何谓动态域呢?就是这个域的名称,是由表达式组成的,只要名称满足了这个 表达式,就可以用这个域

     同样的认识一下这些属性

      name:域的名称,该域的名称是通过一个表达式来指定的,只要符合这这个规则,就可以使用这个域。比如  aa_i,bb_i,13_i等等,只要满足这个表达式皆可

      type:对应的值类型,相应的值必须满足这个类型,不然就会报错

      indexed:是否要索引

      stored:是否要存储

      …其它的属性与普通的域一至


    1.6 主键域 uniqueKey

    给出一条配置

     <uniqueKey>id</uniqueKey>

    指定一个唯一的主键,每一个文档中,都应该有一个唯一的主键,这个值不要随便改

     

    1.7 复制域 copyField

    给出一条配置

    <copyField source="cat" dest="text"/>

    说明一下相应的属性

      source:源域

      dest:目标域

    复制域,将源域的内容复制到目标域中

    注意:目标域必须是允许多值的,如下,nultiValued必须为true,因为可能多个源域对应一个目标域,所以它需要以数组来存储

    <field name="text" type="string" indexed="true" stored="true" multiValued="true"/>

     

    1.8 域的类型 fieldType

    同样的给出一段配置,这段稍微有点复杂


        <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
          <analyzer type="index">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
            <!-- in this example, we will only use synonyms at query time
            <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
            -->
            <filter class="solr.LowerCaseFilterFactory"/>
          </analyzer>
          <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
            <filter class="solr.LowerCaseFilterFactory"/>
          </analyzer>
        </fieldType>

    给出相应属性的说明

      name:域的名称

      class:指定solr的类型

      analyzer:分词器的配置

        type: index(索引分词器),query(查询分词器)

        tokenizer:配置分词器

        filter:过滤器


    1.9 业务字段的实际配置

    经过上面的学习,差不多了解了一些常用的配置,如今我们用field来配置实际的业务字段,有属性如下

    当然,中文分词还是要用的,因为我们在前面的  1.2  章节中,已经配置了一个fieldType的中文分词,所以我们现在一律用中文分词的域类型

     

    主键的id就不需要配置了,默认已经把id配置为主键了,默认的配置如下

    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 

    商品名称(需要分词,需要存储)

    <field name="name" type="text_ik" indexed="true" stored="true"  /> 

    商品分类(不需要分词,需要存储)

    <field name="catalog" type="int" indexed="false" stored="true"  /> 

    商品分类名称(需要分词,需要存储)

    <field name="catalog_name" type="text_ik" indexed="true" stored="true"  /> 

    商品价格(不分词,需要存储)

    <field name="price" type="double" indexed="false" stored="true"  /> 

    商品描述(需要分词,不需要存储)

    <field name="description" type="text_ik" indexed="true" stored="false"  /> 

    商品图片(不需要分词,需要存储)

    <field name="picture" type="string" indexed="false" stored="true"  /> 

     

    复制域的应用

    前面我们了解了复制域,但是却不知道它的应用场景,现在我们结合实际情况来讲一下复制域

    用户在搜索框搜索的时候,有可能输入的是商品名称,也有可能输入的是商品描述,也有可能输入的是一个商品类型,那么这些值的搜索,肯定在后台是对应一个域的,那么既然如此,我们就可以把这些域合并成一个,这样在后台只需要单独的对这一个域进行搜索就可以了

    先定义一个目标域

    <field name="keywords" type="text_ik" indexed="true" stored="false"  multiValued="true"/> 

    复制域,把商品名称,商品描述,商品类型名称复制到上面的这个域中

    <copyField source="name" dest="keywords"/>
    <copyField source="catalog_name" dest="keywords"/>
    <copyField source="description" dest="keywords"/>

     

    1.10 dataimport 导入数据库数据

    solr默认是没有开启dataimport这个功能的,所以我们要经过一点配置来开启它

    1. 首先找到solr5.5/dist/solr-dataimporthandler-5.5.2.jar,把这个文件复制到tomcat/webapp/solr/WEB-INF/lib/下,并且找到相应数据库的驱动包,也同样放到该目录。我这里用的是mysql的驱动包。
    2. 找到solr5.5/example/example-DIH/solr/db/conf/db-data-config.xml,把其复制到solrHome/core1/conf/下,并改名为data-config.xml.
    3. 找到solrHome/core1/conf/solrconfig.xml,并打开,在里面添加一段内容,如下

    4.   <requestHandler name="/dataimport" class="solr.DataImportHandler">
            <lst name="defaults">
                  <str name="config">data-config.xml</str>
            </lst>
        </requestHandler>

       

    5. 打开并编辑data-config.xml,完整的配置文件如下

    6.  <dataConfig>
          <!-- 这是mysql的配置,学会jdbc的都应该看得懂 -->
          <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solr/useUnicode=true&characterEncoding=utf-8" user="root" password="密码"/>
          <document>
              <!-- name属性,就代表着一个文档,可以随便命名 -->
              <!-- query是一条sql,代表在数据库查找出来的数据 -->
              <entity name="product" query="select * from products">
                  <!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) -->
                  <field column="pid" name="id"/>
                  <field column="name" name="product_name"/>
                  <field column="catalog" name="product_catalog"/>
                  <field column="catalog_name" name="product_catalog_name"/>
                  <field column="price" name="product_price"/>
                  <field column="description" name="product_description"/>
                  <field column="picture" name="product_picture"/>
              </entity>
          </document>
      </dataConfig>

       

    7. 重启tomcat,然后会看到如下页面
    8. 点击蓝色的按钮,则开始导入,导入过程依据数量量的大小,需要的时间也不同,可以点击右边的Refresh status来刷新状态,可以查看当前导入了多少条。
    9. 导入成功如下

    二:solrj的使用

    代码地址 https://github.com/zxj19951029/useSolrj

    上面一章节已经讲完了solr的安装与配置,现在说一下使用solrj来维护solr的索引及操作,solrj就是一个Java的客户端,是一个jar包的使用

    首先引入MAVEN的依赖,solrj的版本号要对应solr的版本号

            <dependency>
                <groupId>org.apache.solr</groupId>
                <artifactId>solr-solrj</artifactId>
                <version>5.5.2</version>
            </dependency>

     

     

    2.1 增加及修改

    首先说明,在solr中,增加与修改都是一回事,当这个id不存在时,则是添加,当这个id存在时,则是修改

    代码很好理解,直接给出

     


        //访问的url=项目路径+检索仓库名 如:http://192.168.1.4:8080/solr/core1    
    private String serverUrl = "http://192.168.1.4:8080/solr/core1"; /** * 增加与修改<br> * 增加与修改其实是一回事,只要id不存在,则增加,如果id存在,则是修改 * @throws IOException * @throws SolrServerException */ @Test public void upadteIndex() throws SolrServerException, IOException{ //已废弃的方法 //HttpSolrServer server = new HttpSolrServer("http://192.168.1.4:8080/solr/core1"); //创建 HttpSolrClient client = new HttpSolrClient(serverUrl); SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "zxj1"); doc.addField("product_name", "javaWEB技术"); doc.addField("product_catalog", "1"); doc.addField("product_catalog_name", "书籍"); doc.addField("product_price", "11"); doc.addField("product_description", "这是一本好书"); doc.addField("product_picture", "图片地址"); client.add(doc); client.commit(); client.close(); }

     

     

     

    2.2 删除索引

    删除的代码也直接给出,看代码里面的注释就可以了


        /**
         * 删除索引
         * @throws Exception
         */
        @Test
        public void deleteIndex()throws Exception{
            HttpSolrClient client = new  HttpSolrClient(serverUrl);
    
            //1.删除一个
            client.deleteById("zxj1");
    
            //2.删除多个
            List<String> ids = new ArrayList<>();
            ids.add("1");
            ids.add("2");
            client.deleteById(ids);
    
            //3.根据查询条件删除数据,这里的条件只能有一个,不能以逗号相隔
            client.deleteByQuery("id:zxj1");
    
            //4.删除全部,删除不可恢复
            client.deleteByQuery("*:*");
    
            //一定要记得提交,否则不起作用
            client.commit();
            client.close();
        }


    2.3 查询

    查询稍微复杂一点,但是与solr管理界面的条件一致

    这里先给出一些查询的说明,建议查看这篇文章,个人感觉还是不错的http://blog.csdn.net/gufengshanyin/article/details/21098879

    • q - 查询字符串,如果查询所有*:* (id:1)
    • fq - (filter query)过虑查询,过滤条件,基于查询出来的结果
    • fl - 指定返回那些字段内容,用逗号或空格分隔多个。
    • start - 分页开始
    • rows - 分页查询数据
    • sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:(score desc, price asc)表示先 “score” 降序, 再 “price” 升序,默认是相关性降序。
    • wt - (writer type)指定输出格式,可以有 xml, json, php, phps。
    • fl表示索引显示那些field( *表示所有field,如果想查询指定字段用逗号或空格隔开(如:Name,SKU,ShortDescription或Name SKU ShortDescription【注:字段是严格区分大小写的】))
    • q.op 表示q 中 查询语句的 各条件的逻辑操作 AND(与) OR(或)
    • hl 是否高亮 ,如hl=true
    • hl.fl 高亮field ,hl.fl=Name,SKU
    • hl.snippets :默认是1,这里设置为3个片段
    • hl.simple.pre 高亮前面的格式
    • hl.simple.post 高亮后面的格式
    • facet 是否启动统计
    • facet.field 统计field

    1. “:” 指定字段查指定值,如返回所有值*:*
    2. “?” 表示单个任意字符的通配
    3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)
    4. “~” 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。
    5. 邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~10
    6. “^” 控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache
    7. 布尔操作符AND、||
    8. 布尔操作符OR、&&
    9. 布尔操作符NOT、!、- (排除操作符不能单独与项使用构成查询)
    10. “+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在
    11. ( ) 用于构成子查询
    12. [] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710]

     

    给出基本的代码看一下,仅仅作为一个基本的查询,高级的查询,各位要自己结合文档


    package zxj.solrj;
    
    import java.util.List;
    import java.util.Map;
    
    import org.apache.solr.client.solrj.SolrQuery;
    import org.apache.solr.client.solrj.impl.HttpSolrClient;
    import org.apache.solr.client.solrj.response.QueryResponse;
    import org.apache.solr.common.SolrDocument;
    import org.apache.solr.common.SolrDocumentList;
    import org.junit.Test;
    
    /**
     * 搜索
     * @author Administrator
     *
     */
    public class IndexSearch {
    
        private String serverUrl = "http://192.168.1.4:8080/solr/core1";
        @Test
        public void search()throws Exception{
            HttpSolrClient client = new  HttpSolrClient(serverUrl);
    
            //创建查询对象
            SolrQuery query = new SolrQuery();
            //q 查询字符串,如果查询所有*:*
            query.set("q", "product_name:小黄人");
            //fq 过滤条件,过滤是基于查询结果中的过滤
            query.set("fq", "product_catalog_name:幽默杂货");
            //sort 排序,请注意,如果一个字段没有被索引,那么它是无法排序的
    //        query.set("sort", "product_price desc");
            //start row 分页信息,与mysql的limit的两个参数一致效果
            query.setStart(0);
            query.setRows(10);
            //fl 查询哪些结果出来,不写的话,就查询全部,所以我这里就不写了
    //        query.set("fl", "");
            //df 默认搜索的域
            query.set("df", "product_keywords");
    
            //======高亮设置===
            //开启高亮
            query.setHighlight(true);
            //高亮域
            query.addHighlightField("product_name");
            //前缀
            query.setHighlightSimplePre("<span style='color:red'>");
            //后缀
            query.setHighlightSimplePost("</span>");
    
    
            //执行搜索
            QueryResponse queryResponse = client.query(query);
            //搜索结果
            SolrDocumentList results = queryResponse.getResults();
            //查询出来的数量
            long numFound = results.getNumFound();
            System.out.println("总查询出:" + numFound + "条记录");
    
            //遍历搜索记录
            //获取高亮信息
            Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();
            for (SolrDocument solrDocument : results) {
                System.out.println("商品id:" + solrDocument.get("id"));
                System.out.println("商品名称 :" + solrDocument.get("product_name"));
                System.out.println("商品分类:" + solrDocument.get("product_catalog"));
                System.out.println("商品分类名称:" + solrDocument.get("product_catalog_name"));
                System.out.println("商品价格:" + solrDocument.get("product_price"));
                System.out.println("商品描述:" + solrDocument.get("product_description"));
                System.out.println("商品图片:" + solrDocument.get("product_picture"));
    
                //输出高亮 
                Map<String, List<String>> map = highlighting.get(solrDocument.get("id"));
                List<String> list = map.get("product_name");
                if(list != null && list.size() > 0){
                    System.out.println(list.get(0));
                }
            }
    
            client.close();
        }
    }

    注意:没有索引的域,是不能用作排序的


    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201812/29/1546095413_153553.png) 哪位知道知道是什么原因? 运行环境JDK1.8,tomcat7.0.9
  • 这是我看到的最简单的Jsp环境配置,上述软件版本,傻瓜式安装就是了,根本不用手动设置环境变量什么的。 注意:利用下文中的first.jsp例子时,有两点要注意,一是把中文的双引号替换为英文的,在macromedia中很...

    这是我看到的最简单的Jsp环境配置,用上述软件版本,傻瓜式安装就是了,根本不用手动设置环境变量什么的。

    注意:利用下文中的first.jsp例子时,有两点要注意,一是把中文的双引号替换为英文的,在macromedia中很容易看出来,有很多个;

    二是,数据库的用户名和密码要替换为你自己的。

    文章出处:http://aircraftinteriorschina.com/archiver/?tid-52.html

    JSP、TOMCAT、MYSQL、fileupload、jxl的配置、编程、部署、调试及入门教程

    强烈推荐MYECLIPSE8.5+TOMCAT 7+MYSQL 5.5,我这认为这三个一起用配置起来是最轻松的,配置工作最少的。尤其是TOMCAT 7,一安装完就能直接用,根本无需配置!而且也没有什么BUG,用起来挺好的。很多老的教程中,会让你配置一大堆东西,相信我,其实根本不需要! 安装JDK 6.0这个是必备的,我装的是jdk-6u1-windows-i586-p。如果你不非要追求最新版本,就也装这个吧,这样的话,如果你严格按照本文来配置开发环境,我保证是绝无问题的。 安装MYECLIPSE 8.5去网上下个,安装起来基本不用动脑。 安装TOMCAT 7直接去官网(tomcat.apache.org)下载,我用的是apache-tomcat-7.0.23。我的安装目录是D:\Tomcat7,这个目录下方会用到。安装后无须任何配置!TOMCAT会在开始菜单中创建一个叫welcome的快捷方式,运行它如果能看见tomcat的欢迎网页,就说明没问题。 安装MySQL到MySQL的官网(www.mysql.com)上下载mysql-5.5.19-win32.exe和mysql-connector-java-5.1.18.zip。运行mysql-5.5.19-win32.exe进行MYSQL的安装,整个过程是比较智能化的,我挑必须注意的地方说下:安装完后会出现个配置向导的选项(Configure the MySQL Servernow),请勾选立即配置你的MySQL。有些人说安装完MySQL后无法启动,原因就在于没有配置MySQL。点击“Finish”完成安装,并开始配置MySQL,点“Next”,进入配置类型选择页面。选“Detailed configuration”(详细配置)点“Next”,进入服务类型选择页面。选“Developer Machine”(开发者机器),这样占用系统的资源不会很多点“Next”后,进入数据库用法选择页面。选择“Multifunctional Database”
    点“Next”,进入选择InnoDB数据存放位置页面
    不用更改设置,直接放在Installation Path安装目录里即可,然后点“Next”,选择MySQL的同时联接数选择“Manual Setting”,设置为100(根据自己需要,酌情设置)点“Next”,配置MySQL在TCP/IP通讯环境中的端口选择默认的3306端口即可。点“Next”,选择MySQL中的字符设置注意,这里的选择将会影响你是否能在MySQL中使用中文。选择utf-8字符集以便支持简体中文(JSP里经常用utf-8),点“Next”,设置Windows服务选项注意,这里的选择很关键。“Install As Windows Service”一定要勾选,这是将MySQL作为Windows的服务运行。
    “Service Name”就用默认的“MySQL”
    下面的“Launch the MySQL Serverautomatically”一定要勾选,这样Windows启动时,MySQL就会自动启动服务,要不然就要手工启动MySQL。
        许多人说安装MySQL后无法启动、无法连接、出现10061错误,原因就在这里。
        点“Next”,设置根帐号root的登录密码(MySQL默认的账号名就是root)
    “Modify Security Settings”是设置根帐号的密码,输入你设定的密码即可。这个密码要记好,以后会经常用得到的!“Create An Anonymous Account”是创建一个匿名帐号,这样会导致未经授权的用户非法访问你的数据库,有安全隐患,建议不要勾选。
    点“Next”,MySQL配置向导将依据你上面的所有设定配置MySQL,以便MySQL的运行符合你的需要
    点“Execute”开始配置,当出现“Service started successfully”时,说明你的配置完成,MySQL服务启动成功
    点“Finish”完成,整个MySQL的配置完成,剩下的就是用MySQL客户端连接MySQL服务器,然后使用了。

    安装JDBC驱动:说白了,就是得让TOMCAT能认得出你的MYSQL。    解压mysql-connector-java-5.1.18.zip(解压后有好几个文件,不用想太多,我们只用得到mysql-connector-java-5.1.18-bin.jar),把mysql-connector-java-5.1.18-bin.jar放到D:\Tomcat7\lib(这个目录要根据你的TOMCAT的安装目录来变,别死脑筋)下面。 查看并启动MySQL服务:在Windows XP下安装完MySQL后,它就已经自动启动服务了,并且在开始菜单中有其客户端的快捷方式连接。可以通过Windows的服务管理器查看。“开始”-“运行”,输入“services.msc”,回车。
        弹出Windows的服务管理器,然后就可以看见服务名为“mysql”的服务项了,其右边标明“已启动”
        在开始菜单-所有程序-MySQL-MySQL Server 5.5里有个叫MySQL Command Line Client的快捷方式,运行它,你会发现系统在跟你要密码,输入安装时设置的密码即可。
    入门教程数据库的使用在运行MySQL Command Line Client后打开的命令行窗口中,可以操作MySQL。使用mysql的基本命令(在mysql命令行编辑每输入完命令后最后一定要有分号——少部分命令可以没有)
    显示数据库:show databases; ——就可以看到有哪些数据库了。
    使用数据库:use 数据库名; ——可以进入数据库。显示数据表:show tables; ——可以看到当前数据库里有哪些数据表。 下面我们来建立一个数据库first,再建一个数据表about,然后在about表中填入一些数据,供下面测试用。

    建库在mysql里建一个数据库first,以及在数据库里建一个表about
    命令:create database first;


    输入命令:use first;
    使用first数据库;

    在first库中建表
    命令:create table about(id int(8)primary key,name varchar(10));

    在表中加入数据:
    命令:insert into  about values(‘1026’,’laojiang’);
    JSP连接mysql在D:\Tomcat7\webapps目录下建立子目录myapp
    进入D:\Tomcat7\webapps\myapp目录下
    用记事本编写一个文件保存为first.jsp
    代码如下:
    <%@ page contentType=”text/html;charset=gb2312”%>
    <%@ page import=”java.sql.*”%>
    <html>
    <body>
    <%Class.forName(“org.gjt.mm.mysql.Driver”).newInstance(); //这句是用来启动数据库的驱动的
    String url =”jdbc:mysql://localhost:3306/first”;//first为你的数据库名,上文我们创建了的,记得吗?String user=”root”; //MYSQL默认的用户名String assword=”asswor”; //这是我在配置MYSQL时设置的密码,你得换成你的
    Connection conn= DriverManager.getConnection(url,user,assword);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql=”select * from about”;//about是first数据库中的一个表,当然也是你自己创建的喽
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next()) {%>
    您的第一个字段内容为:<%=rs.getString(1)%>
    您的第二个字段内容为:<%=rs.getString(2)%>
    <%}%>
    <%out.print(“数据库操作成功,恭喜你”);%>
    <%rs.close();
    stmt.close();
    conn.close();
    %>
    </body>
    </html>

    在浏览器中输入:
    http://127.0.0.1:8080/myapp/first.jsp
    若出现:
    id|num
    0 |laojiang

    数据库操作成功,恭喜你。 以上操作是直接在TOMCAT的webapps中直接操作的。对于简单的JSP页面这样通常没有什么问题,但是对于SERVLET和JAVABEAN,特别容易出问题(至于原因嘛,你可以观察MYECLIPSE创建项目的目录与部署后的文件目录,层次是不一样的)。所以我推荐要把MYECLIPSE与TOMCAT关联起来,并通过部署网站功能来进行网站的调试。 补充介绍:退出命令:exit 为数据库设置权限(用户和密码)
    命令:grant all privileges onfirst.* to test@localhost identified by  “123456”;
    当你执行完这个命令以后,只要你再以用户名:test,密码:123456登录时你就只可以对first这个数据库操作,这样避开使用root账户。不过这功能我不怎么用。 建议的开发流程:在MYECLIPSE中新建-》部署-》运行 关联MYECLIPSE与TOMCAT:MyEclipse->Window->Preferences->MyEclipse->Servers->Tomcat->ConfigureTomcat 6.x,虽然我们装的是TOMCAT 7,不过这里当作6.X来配置也没有问题的,Trust me。然后,Tomcat home directory和Tomcat base directory都选择D:\Tomcat7(上文中我们的TOMCAT安装目录,记得不?当然你可以根据实际情况来更改),Tomcat temp directory可以用D:\Tomcat7\temp(如果没有的话自己建个),最后那个Optional program arguments不用填,然后点OK。在左侧项目列表中,右击要部署的项目名->MyEclipse->Add andremove project deployments->Add->Server栏里选Tomcat 6.x,单击FINISH。这样就部署好了,下次再要部署时,只需单击下列表里的服务器,然后单击Redeploy就行了。请细心比较直接在MYECLIPSE中新建的项目的目录结构与部署到TOMCAT中后的目录结构,最大的区别就是WebRoot目录下的内容被取了出来,所以这就是为什么在直接在MYECLIPSE中新建的项目里(即使是已经放在TOMCAT的WEBAPPS目录中了)运行SERVLET时会报错的原因,因为目录结构不同。而在通过MYECLIPSE的部署功能把网站进行部署后,就没有任何问题了!而且再注意看部署后的项目的web-inf/lib目录下的jar包,其实是我们用到的包被部署到这里来了,而在项目部署前的源文件夹里看web-inf/lib目录,里面其实是什么jar包都没有的(common-fileupload,common-io,jxl这三个包我都是放在tomcat/lib目录下,不放在项目web-inf/lib下的,在MYECLIPSE中使用时,我会手动导入这三个包,部署后,你就会发现这三个包被拷贝至部署后的项目的web-inf/lib下去了)。 Servlet:尽量使用MYECLIPSE来编写Servlet,因为MYECLIPSE可以自动添加相关的映射信息到web.xml中。MYECLIPSE自动添加的映射信息里有“/servlet”字样,据我调试,发现是多此一举,反而会导致报404错误!(404错误是一个关于路径的错误,说白了,就是系统找不到你指定的内容)注意有种情况特别要注意:SERVLET的代码是存在SRC目录中的,假设你的页面是放在WEBROOT下面的子文件夹PAGES中,那么在调用SERVLET(假设名为Upload)时,应当使用“../Upload”——也就是说,你得告诉系统,Upload这个SERVLET在当前页面的上一层目录里。如果不这样做,就会报404错误。 Common-fileupload,common-io,jxl这三个包的配置:前两个用于上传文件,最后一个用于操作EXCEL表。这三个包应当放在tomcat/lib下面,其它任何地方都不要放,然后在项目中手动添加这几个包。否则会导致冲突。这几个要保证包的唯一性。向TOMCAT部署网站后会发现这三个包被自动拷贝至部署后的项目的web-inf/lib下面了。曾经我也根据网上的说法,把这三个包放到JDK的目录里去或者放到项目目录里去,都会出现这样那样的错误。 推荐使用MySQL Workbench   在MYSQL官网上有得下,用它可以可视化编辑MYSQL数据库,真的是方便得不得了!

    展开全文
  • JTM是Win32下绿色免费的JDK + Tomcat + MySQL环境集成工具。通过JTM用户无需对JDKTomcat、 MySQL进行任何安装和配置即可迅速搭建支持JSP + MySQL的服务器运行环境。 二、系统需求及集成软件 1. 系统需求: ...
  • [size=large]在win7中用VMware 安装linux 虚拟机,安装好后,安装 jdktomcat、mysql 使用ping 命令可以主机和虚拟机相互ping通; 在虚拟机中可以直接访问mysql,http://localhost:8080/ shell 也可以访问到...
  •  首先必须承认大公司是有自己的运维团队的,我们测试人员只需要人家搭建好的点点点就行了,但是中小公司多半是由测试人员去部署测试环境的,很多时候我们测试人员兼顾了测试、运维、实施等一些列...
  • 下载jdk,给个网址如下:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 然后filezzila上传上去,centos默认是可以这么上去的,但是其他的Linux不一定...
  • eclipse 导入tomcat7源码

    2017-03-09 17:09:56
    导入tomcat的源码其实说简单也不简单,说不简单也简单,主要还是环境问题,中间花费了我很多时间,网上找了很多都没什么用,参考一些文章,然后自己慢慢摸索出来的。 环境:(1)jdkjdk1.6.0_45 我下的是这个...
  • 1. 需要准备好下面这些工具 JDK 1.6+ Maven 2或3 TortoiseSVN 1.7+ (从1.7开始”.svn”目录集中放在一处了,不再每个目录下都放一份) ...另外,分析tomcat源代码不需要对这4个工具做什么特殊配置。 2. 下载Tomca
  • 1.阿里云服务器上传文件https://jingyan.baidu.com/article/3d69c5516f4b82f0cf02d7a2.html首先安装ftp服务器vsftp,然后配置myftp账户。按照这个教程配了半天的myftp账户,然而并没有...2.在linux上配置jdk下载地址...
  • 这两天遇到一个问题,用idea启动tomcat时,突然报错: 代理抛出异常 :java.rmi.server.ExportException: Port already...找了好久没找到问题,中间直接换了eclipse重新down项目,启动tomcat时发现不管用什么端口号都会报
  • 做开发真的是什么情况都能发生,配置了这么多环境,今天就VMware跑了centos7 ,在上配置好jdk以及tomcat, 但是tomcat能正常启动,但是日志里面就是报错: java.lang.UnsatisfiedLinkError: /usr/java/jdk1.8.0_...
  • 有些是因为不同的应用,需要对应不同的WEB容器,如以前做的程序,用JDK1.7,跑在tomcat7下;现在一般都JDK1.8,跑在tomcat8或以上。多个tomcat8的话,是不想应用之间互相影响,多个应用都挤在一个tomcat下,一损俱损...
  • 1. 需要准备好下面这些工具 JDK 1.6+ Maven 2或3 ...TortoiseSVN 1.7+ (从1.7开始”.svn”目录集中放在一处了,不再每个目录下都放一份) ...另外,分析tomcat源代码不需要对这4个工具做什么特殊配置。
  • ### 1. 需要准备好下面这些工具JDK 1.6+Maven 2或3TortoiseSVN 1.7+ (从1.7开始”.svn”目录集中放在一处了,不再每个目录下都放一份)Eclipse 3.5+这4个工具...另外,分析tomcat源代码不需要对这4个工具做什么特殊配...
  • _**我的问题是:为什么在Myeclipse自带的Tomcat中它就能启动,我搜索了整个Myeclipse文件夹,也没找到WSServletContextListener这个类,为什么它就能加载这个类,MyEclipse的Tomcat从哪里加载这个类?*_*
  • 需要准备好下面这些工具JDK 1.6+Maven 2或3TortoiseSVN 1.7+ (从1.7开始”.svn”目录集中放在一处了,不再每个目录下都放一份)Eclipse 3.5+这4个工具不在这里描述怎么配置了,如果你是有两三年开发经验的Java开发...
  • 1、 为 JDK 配置用户环境...Tomcat 是最常用的Web 服务器,通常用于中型和小型 Web 项目,Tomcat 的安装 和 环境配置,但还需为 Tomcat 配置一个 JAVA_HOME 环境变量就可以了,也就是这个 JDK 的 JAVA_HOME 环境变量
  • 自己之前都是eclipse加Tomcat部署项目,第一次idea部署项目发现无法使用,但是cmd或者eclipse都可以部署,后来发现是jdk和Tomcat版本不一致造成的,我的是jdk8和Tomcat7,把Tomcat换成8就解决了. 但是eclipse不...
  • 于是后面我尝试在maven运行Tomcat7:run之后在地址栏直接输入localhost/travel/register.html发现也可以获取到验证码,但是在idea里面直接点击右上角的浏览器图标就会像上面一样访问不同的地址而获取不到验证码,不...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 195
精华内容 78
关键字:

tomcat7用什么jdk