(1)匹配单个属性的关键字;(2)匹配单个对象的关键字;(3)匹配对象集合的关键字;(4)基于事件驱动的;(5)实时搜索,参考win7的搜索功能。

1、备份,java代码,数据库数据。

2、oracle数据库,用户操作。

(1)查看数据库默认表空间。
select * from database_properties;
(2)创建用户
create user 用户名 identified by 密码 默认表空间 临时表空间
create user dyl identified by dyl default tablespace users Temporary TABLESPACE Temp;
(3)授权用户
grant connect,resource,dba to dyl;
(4)提交
commit;
(5)查询用户
select * from all_users;
select username,password from dba_users;

3、oracle数据库,oneds表添加主键,实现主键自增长。

(1)表-》约束条件-》添加主键。(2)序列-》新建序列。(3)表-》触发器-》创建序列中的主键。

4、 数据持久层用hibernate实现,定义 oneds 表和 OneDs 类型之间的映射信息。

 <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- 定义 oneds 表和 OneDs 类型之间的映射信息 -->
<hibernate-mapping><!-- <hibernate-mapping package="包名写这也行"> -->
<!-- name:包名.类名,指定是哪个类;table:数据库中哪个表;catalog:对 Oracle 而言 为某个用户,不写也行(若用工具则会自动生成)
。 例如, select * from oneds 则会在 hibernate.cfg 配置 文件中定义的库(或用户)下去找表。若写了则为 select
* from catalog.oneds --> <class name="com.dyl.entity.OneDs" table="ONEDS" catalog="DYL"> <!-- <id></id>表明此为主键列,且必须写否则 xml 报错,主键映射 -->
<id name="id" type="java.lang.Integer">
<column name="ID" /><!-- 或双标签<column name="ID"></column> -->
<!-- 指定主键值生成方式,采用序列方式生成主键,仅对添加操作有效 -->
<generator class="sequence">
<param name="sequence">ONEDS_SEQUENCE</param> <!--指定序列名 -->
</generator>
</id> <property name="name" type="java.lang.String"><!-- 以下为非主键映射 -->
<column name="NAME" /><!--可有 length、not-null 属性,如:length="20" -->
</property>
<property name="remark" type="java.lang.String"><!-- 映射顺序没关系 -->
<column name="REMARK" />
</property>
<property name="definition" type="java.lang.String"><!-- 类型要和实体定义的相同 -->
<column name="DEFINITION" />
</property>
<property name="attribute" type="java.lang.String"><!--列名写错则报错读不到实体 -->
<column name="ATTRIBUTE" /><!--junit 测试右键点 Copy Trace 查看错误列 -->
</property>
<property name="method" type="java.lang.String">
<column name="METHOD" />
</property>
<property name="dscase" type="java.lang.String">
<column name="DSCASE" />
</property>
<property name="explain" type="java.lang.String">
<column name="EXPLAIN" />
</property> <!--也可写成<property name=" " type=" " column=" "></property> ,主键列同理! --> </class>
</hibernate-mapping>

OneDs.hbm.xml

5、hibernata管家。

 <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory> <property name="dialect"><!-- 指定方言,决定 Hibernate 生成哪种 SQL -->
org.hibernate.dialect.OracleDialect<!-- 不知道数据库版本就写 OracleDialect -->
</property><!-- 可在 hibernate3.jar 中 org.hibernate.dialect 包下查看名字 --> <property name="connection.url">
jdbc:oracle:thin:@192.168.0.106:1521:PKMS
</property>
<property name="connection.username">DYL</property>
<property name="connection.password">DYL</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property> <!-- 框架参数,将 hibernate 底层执行的 SQL 语句从控制台显示 -->
<property name="show_sql">true</property>
<!-- 格式化显示的 SQL -->
<property name="format_sql">true</property>
<!-- 指定映射描述文件 -->
<mapping resource="com/dyl/entity/OneDs.hbm.xml" /> </session-factory>
</hibernate-configuration>

hibernate.cfg.xml

6、dao接口,没有本质变化。

 package com.dyl.dao;

 import java.util.List;

 import com.dyl.entity.OneDs;
/**
* 知识点dao接口
* @author dyl
* @date 2014-7-26
*/
public interface IOneDsDao {
public void addOneDs(OneDs od);
public void deleteOneDs(int id);
public void updateOneDs(OneDs od);
public OneDs selectById(int id);
public List<OneDs> selectAll();
/**
* 根据名称模糊查询
*/
public List<OneDs>selectByName(String name);
}

IOneDsDao

7、dao实现。

 package com.dyl.dao.impl;

 import java.util.List;

 import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction; import com.dyl.dao.IOneDsDao;
import com.dyl.entity.OneDs;
import com.dyl.util.HibernateUtil; /**
* 知识点数据持久实现
*
* @author dyl
* @date 2014-7-26
*/
public class OneDsDaoImpl implements IOneDsDao { private Session session; public OneDsDaoImpl() {// 不想老写获得 session 的方法,就写在构造器中
session = HibernateUtil.getSession();
} /**
* add 方法执行增加操作, 注意 1:获取事务并开启,增删改要注意,查询可以不管事 务,因为没对数据库进行修改; 注意 2:主键值根据
* hbm.xml中的<generator>定义生成,执 行后,会先获取序列值,再去做 insert 操作。 即先:select
* ONEDS_SEQUENCE.nextval from dual; 然后:insert into
*/
public void addOneDs(OneDs od) {
// Session session=HibernateUtil.getSession();
Transaction tx = session.beginTransaction();// 打开事务
session.save(od);
tx.commit();// 提交事务
session.close();// 释放
} /**
* delete 方法执行删除操作,由于 Hibernate 以“对象”为单位进行数据库操作,所以
* 这里要传进去一个对象,虽然是个对象,但还是按主键做条件删除,只要把主键值设置上就 行,其他非主键值不用管。也可先通过 id 查再删
*/
public void deleteOneDs(int id) {
// Session session=HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
OneDs od = new OneDs();
od.setId(id);
session.delete(od);
tx.commit();
session.close();
} /** update 方法执行修改操作 */
public void updateOneDs(OneDs od) {
// Session session=HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
session.update(od);// 将 oneds 对象更新到数据库
tx.commit();
session.close();
} /**
* get 方法执行查询,按主键当条件查询,如何判断是主键,是根据写的描述文件来定, get 方法就是
* selectById,就是按主键去查,需指定:操作哪个类和 id (主键)条件值即可,其他条件查询做不了
*/
public OneDs selectById(int id) {
// Session session=HibernateUtil.getSession();
OneDs od = (OneDs) session.get(OneDs.class, id);
//session.close();
return od;
} /**
* 特殊查询,SQL 语句:String sql="select * from oneds"; HQL 语句: String
* hql="from OneDs"; (Hibernate Query Language) 是面向对象的查询语句。 from 后写映射的类名,它是
* Hibernate 中特有的查询语句,根据映射的类去查询。
*/
@SuppressWarnings("unchecked")
public List<OneDs> selectAll() {
// Session session=HibernateUtil.getSession();
String hql = "from OneDs";// HQL 语句
Query query = session.createQuery(hql);
List<OneDs> list = query.list();// 执行查询,返回 List 集合
session.close();
return list;
} /**
* 根据名称模糊查询
*/
@SuppressWarnings("unchecked")
public List<OneDs> selectByName(String name) {
session.beginTransaction();
// SQL代码
String hql="from OneDs as od where od.name like :name";
// 获取查询对象
Query query = session.createQuery(hql);
query.setString("name", "%" + name + "%");
List<OneDs> list = query.list();
// for( int i = 0; i < list.size(); i ++ ) {
// OneDs od=list.get(i);
// String odName=od.getName();
// System.out.println("odName=" + odName);
// }
session.getTransaction().commit();
session.close();
return list;
}
}

OneDsDaoImpl

8、junit测试。

 package com.dyl.dao.impl;

 import java.util.List;

 import org.junit.Test;

 import com.dyl.dao.IOneDsDao;
import com.dyl.entity.OneDs; /**
* junit测试
*
* @author dyl
* @date 2014-7-26
*/
public class OneDsDaoImplTest { @Test
public void testAdd() {// id 主键列由 Hibernate 管理,这里不用设置
IOneDsDao dao=new OneDsDaoImpl();
OneDs od = new OneDs();
od.setAttribute("1234567");
od.setDefinition("1234567");
od.setDscase("1234567");
od.setExplain("1234567");
od.setMethod("1234567");
od.setName("1234567");
od.setRemark("1234567");
dao.addOneDs(od);
} @Test
public void testDelete() {
IOneDsDao dao=new OneDsDaoImpl();
dao.deleteOneDs(2);
} @Test
public void testUpdate() {
/**
* 注意事项:更新部分字段,不能和实现类中的删除那样,做一个对象出来!否 则没设置的字段将被改为空!
*/
IOneDsDao dao=new OneDsDaoImpl();
OneDs od = dao.selectById(1);// 只能先通过 id 找到带有所有值的对象
od.setAttribute("1234567");// 然后再对部分字段进行更新,才能避免把其他字段更新为空
od.setDefinition("1234567");
dao.updateOneDs(od);
} @Test
public void testSelectById() {// 当 get 方法没有记录时,返回 null
IOneDsDao dao=new OneDsDaoImpl();
OneDs od = dao.selectById(1);
System.out.println(od.getAttribute());
System.out.println(od.getDefinition());
System.out.println(od.getDscase());
System.out.println(od.getExplain());
System.out.println(od.getMethod());
} @Test
public void testFindAll() {
IOneDsDao dao=new OneDsDaoImpl();
List<OneDs> list = dao.selectAll();
for (OneDs od : list) {
System.out.println(od.getName());
}
} @Test
public void testSelectByName(){
IOneDsDao dao=new OneDsDaoImpl();
String name="好";
List<OneDs>list=dao.selectByName(name);
for (OneDs od : list) {
System.out.println(od.getName());
}
} }

OneDsDaoImplTest

9、工厂设计模式,没有本质变化。

 package com.dyl.util;

 import com.dyl.dao.impl.CompanyDaoImpl;
import com.dyl.dao.impl.DepDaoJdbcImpl;
import com.dyl.dao.impl.DutyDaoJdbcImpl;
import com.dyl.dao.impl.OneDsDaoImpl;
import com.dyl.dao.impl.StaffDaoImpl;
/**
* 工厂设计模式:为调用者提供符合接口要求的对象,方便我们以后采用框架技术进行底层数据访问。
* @author dyl
* @date 2014-06-01
*/
public class Factory {
public static Object getInstance(String type) {
Object obj = null;
if ("IOneDsDAO".equals(type)) {
obj = new OneDsDaoImpl(); } else if ("ICompanyDao".equals(type)) {
obj = new CompanyDaoImpl(); } else if ("IDepDao".equals(type)) {
obj = new DepDaoJdbcImpl();
} else if ("IDutyDao".equals(type)) {
obj = new DutyDaoJdbcImpl(); } else if ("IStaffDao".equals(type)) {
obj = new StaffDaoImpl();
} return obj;
}
}

Factory

10、业务逻辑接口,没有本质变化。

 package com.dyl.service;

 import java.util.List;

 import com.dyl.entity.OneDs;

 /**
* 知识点业务逻辑接口
* @author dyl
* @date 2014-7-26
*/
public interface IOneDsService {
public void addOneDs(OneDs od);
public void deleteOneDs(int id);
public void updateOneDs(OneDs od);
public OneDs selectById(int id);
public List<OneDs> selectAll(); /**
* 根据名称模糊查询
*/
public List<OneDs>selectByName(String name);
}

IOneDsService

11、业务逻辑实现,没有本质变化。

 package com.dyl.service.impl;

 import java.util.List;

 import com.dyl.dao.IOneDsDao;
import com.dyl.entity.OneDs;
import com.dyl.service.IOneDsService;
import com.dyl.util.Factory; /**
* 知识点业务逻辑实现
* @author dyl
* @date 2014-7-26
*/
public class OneDsServiceImpl implements IOneDsService{ IOneDsDao dao=(IOneDsDao) Factory.getInstance("IOneDsDAO"); public void addOneDs(OneDs od) {
dao.addOneDs(od);
} public void deleteOneDs(int id) {
dao.deleteOneDs(id);
} public void updateOneDs(OneDs od) {
dao.updateOneDs(od);
} public OneDs selectById(int id) {
return dao.selectById(id);
} public List<OneDs> selectAll() {
return dao.selectAll();
} /**
* 根据名称模糊查询
*/
public List<OneDs>selectByName(String name){
return dao.selectByName(name);
}
}

OneDsServiceImpl

12、导入struts2框架和json数据交换格式需要用到的jar包。

13、在web.xml中,配置struts2前端控制器。

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <filter><!-- 前端控制器 -->
<filter-name>Struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern><!-- 表示所有的请求都要经过该过滤器 -->
</filter-mapping> </web-app>

web.xml

14、基础action,提供一些基本的公共功能。

 package com.dyl.util;

 import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import org.apache.struts2.ServletActionContext;
// class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware import com.opensymphony.xwork2.ActionSupport; /**
* 基础action,提供一些基本的公共功能。
*
* Action接口有:
* public static final java.lang.String SUCCESS = "success";
* public static final java.lang.String NONE = "none";
* public static final java.lang.String ERROR = "error";
* public static final java.lang.String INPUT = "input";
* public static final java.lang.String LOGIN = "login";
* public abstract java.lang.String execute() throws java.lang.Exception;
*
* extends ActionSupport
*
* 由JavaDoc可知,ActionSupport类实现了接口:
* com.opensymphony.xwork2.Action。
* com.opensymphony.xwork2.LoaleProvider。
* com.opensymphony.xwork2.TextProvider。
* com.opensymphony.xwork2.Validateable。
* com.opensymphony.xwork2.ValidationAware。
* com.uwyn.rife.continuations.ContinuableObject。
* java.io.Serializable。
* java.lang.Cloneable。
*
* 例如:(1)数据校验。Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,
* 它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。
* 例如:(2)实现国际化。Actionsupport提供了一个getText(String key)方法实现国际化,该方法从资源文件上获取国际化信息。
* 这样在自定义标签时可以定义一个变量为new actionsupport对象实现国际化。
* 例如:(3)序列化。class ActionSupport implements java.io.Serializable
*
* @author dyl
* @date 2014-7-12
*/
public class BaseAction extends ActionSupport {
private static final long serialVersionUID = 184151487358146406L; /**
* 发送字符串
*
* out.write()是字节输出流的方法
* out.print()是字符输出流的方法
* servelt中是HttpServletResponse.getWriter()取得的字符输出流
* jsp隐式变量out是字符输出流
* @param str
*/
public void outString(String str) {
try {
PrintWriter out = getResponse().getWriter();
// out.write(str);
out.print(str);
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 发送xml数据
*
* Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,可以参考。
* response.setContentType("text/html; charset=utf-8"); html
* response.setContentType("text/plain; charset=utf-8"); 文本
* response.setContentType("text/javascript; charset=utf-8"); json数据
* response.setContentType("application/xml; charset=utf-8"); xml数据
* @param xmlStr
*/
public void outXMLString(String xmlStr) {
getResponse().setContentType("application/xml;charset=UTF-8");// 指定对服务器响应进行重新编码的编码
outString(xmlStr);
} /**
* 发送json数据
*
* Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,可以参考。
* response.setContentType("text/html; charset=utf-8"); html
* response.setContentType("text/plain; charset=utf-8"); 文本
* response.setContentType("text/javascript; charset=utf-8"); json数据
* response.setContentType("application/xml; charset=utf-8"); xml数据
* @param xmlStr
*/
public void outJsonString(String str) {
getResponse().setContentType("text/javascript;charset=UTF-8");// 设置发送到客户端的响应的内容类型
outString(str);
} /**
* Java对象转换成一个JSON字符串,使用JSONObject.fromObject()
*
* @param obj
*/
public void outJson(Object obj) {
outJsonString(JSONObject.fromObject(obj).toString());
} /**
* Java对象组成的集合转换成一个JSON字符串,使用JSONArray.fromObject()
*
* @param objs
*/
public void outJsonArray(Object objs) {
outJsonString(JSONArray.fromObject(objs).toString());
} /**
* 获得request
*
* ServletActionContext返回的是Servlet使用类型
* @return
*/
public HttpServletRequest getRequest() {
return ServletActionContext.getRequest();
} /**
* 获得response
*
* ServletActionContext返回的是Servlet使用类型
* @return
*/
public HttpServletResponse getResponse() {
return ServletActionContext.getResponse();
} /**
* 获得session
*
* 后台:HttpSession session = request.getSession();
* @return
*/
public HttpSession getSession() {
return getRequest().getSession();
} /**
* 获得servlet上下文
*
* ServletActionContext返回的是Servlet使用类型
*
* 后台:ServletContext servletContext = this.getServletContext();
* servletContext.setAttribute(("username",username);
* JSP网页:application.getAttribute("username");
* @return
*/
public ServletContext getServletContext() {
return ServletActionContext.getServletContext();
} /**
* 获得绝对路径
* request.getSession().getServletContext().getRealPath("/")+"";
*
* 比较:获得相对路径,request.getContextPath()
* @param path
* @return
*/
public String getRealPath(String path) {
return getServletContext().getRealPath(path);
} }

BaseAction

15、Action类。

 package com.dyl.action;

 import java.util.List;
import com.dyl.entity.OneDs;
import com.dyl.service.IOneDsService;
import com.dyl.service.impl.OneDsServiceImpl;
import com.dyl.util.BaseAction; /**
* 知识点控制器
*
* @author dyl
* @date 2014-7-27
*/
public class OneDsAction extends BaseAction { private static final long serialVersionUID = 3518833679938898354L; private List<OneDs> odList; // 使用josn返回List对象 // 为上面的的属性提供get,Set方法
public List<OneDs> getOdList() {
return odList;
} public void setOdList(List<OneDs> odList) {
this.odList = odList;
} /**
* 返回List对象
*
* @return
*/
public String returnList() { String name = super.getRequest().getParameter("odName");
//System.out.println(name);
IOneDsService ds = new OneDsServiceImpl();
odList = ds.selectByName(name);
// for (int i = 0; i < odList.size(); i++) {
// System.out.println(odList.get(i).getName());
// } return "list";
} }

OneDsAction

16、控制器配置文件struts.xml。

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="default" namespace="/" extends="json-default">
<action name="OneDsAction" class="com.dyl.action.OneDsAction"> <!-- 返回List对象 -->
<result name="list" type="json"></result> </action>
</package> </struts>

struts.xml

17、显示界面。

 <!DOCTYPE HTML>

 <html>
<head> <title>知识点</title> <meta charset="utf-8"> <script src="js/jquery.js"></script>
<script src="js/index.js"></script> </head> <body> <input id="odName" type="text" value="输出名称关键字进行查询"
onfocus="if (value =='输出名称关键字进行查询'){value =''}"
onblur="if (value ==''){value='输出名称关键字进行查询'}" />
<input id="selectOdName" type="button" value="查询" />
<br />
<br />
<!-- 信息层 -->
<div id="message"></div> </body>
</html>

index.html

18、事件驱动。

 //初始加载页面时
$(document).ready(
function() { // 为按钮添加鼠标单击事件
$("#selectOdName").click(
function() { var odName=document.getElementById("odName").value;
//alert(odName); // 使用jQuery中的$.ajax({});Ajax方法
$.ajax({
url : "OneDsAction!returnList.action",
type : "POST",
data : {odName:odName},
dataType : "json",
success : function(data) {
//alert(data);
// 查看Object对象内容
for(i in data){
//alert(i); // 获得属性
//alert(data[i]); // 获得属性值
}
// alert(data.odList);
// var test=data.odList;
// for(j in test){
// alert(j);
// alert(test[j]);
// var b=test[j];
// for(k in b){
// alert(k);
// alert(b[k]);
// }
// } // 清空显示层中的数据
$("#message").html("");
// 使用jQuery中的each(data,function(){});函数
// 从data.odList获取OneDs对象放入value之中
$.each(data.odList, function(i, value) {
// alert(i);
// alert(value.name);
$("#message").append("<div>第" + (i + 1) + "个:</div>")
.append("<div><font color='red'>编号:" + value.id + "</font></div>")
.append("<div><font color='red'>名称:" + value.name + "</font></div>")
.append("<div><font color='red'>简介:" + value.remark + "</font></div>")
.append("<div><font color='red'>定义:" + value.definition + "</font></div>")
.append("<div><font color='red'>属性:" + value.attribute + "</font></div>")
.append("<div><font color='red'>方法:" + value.method + "</font></div>")
.append("<div><font color='red'>实例:" + value.dscase + "</font></div>")
.append("<div><font color='red'>说明:" + value.explain + "</font></div>");
});
}
}); }); });

index.js

19、tomcat加入系统服务,方便tomcat应用自动启动,tomcat应用编译好后放在webapps里。修改xml配置文件,需要重新编译,eclipse->project->clean。

(1)进入D:/ProgramFiles/Tomcat6/bin目录,找到startup.bat、shutdown.bat、service.bat。

(2)修改startup.bat

在第一行前加入如下内容:
SET JAVA_HOME=D:\ProgramFiles\tool\Java\jdk6
SET CATALINA_HOME=D:\ProgramFiles\Tomcat6
JAVA_HOME就是环境变量中配置的内容.CATALINA_HOME就是Tomcat的目录

(3)修改shutdown.bat
在第一行前加入如下内容:
SET JAVA_HOME=D:\ProgramFiles\tool\Java\jdk6
SET CATALINA_HOME=D:\ProgramFiles\Tomcat6

(4)修改service.bat
在第一行前加:
set CATALINA_HOME=D:\ProgramFiles\Tocmat6
set SERVICE_NAME=Tomcat6
set PR_DISPLAYNAME=Apache Tomcat
第一行是环境变量中配置的内容,第二行是服务的名字,在命令行中通过该名字进行服务的控制(启动/关闭)
第三行是服务的显示名称,即在服务管理器中显示的名称.

(5)添加服务
在DOS界面下,进入Tomcat解压目录的bin目录,输入命令:
service remove tomcat6
service.bat install
如果安装成功,会提示:The service 'Tomcat6(或者修改后的SERVICE_NAME)' has been installed

20、设置链接到桌面,避免每次输出。桌面右键新建-》快捷方式-》输入url和名称。

21、工程结构图。

个人知识管理系统Version1.0开发记录(11)的更多相关文章

  1. 个人知识管理系统Version1.0开发记录(09)

    MyBatis初试 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.   运用Mybatis框 ...

  2. 个人知识管理系统Version1.0开发记录(01)

    架 构 描 述 01.数据层,数据源,有形资源入库,无形资源整理,对外搜索引擎,对内平台搜索,数据类型(文字.图片.声音.视频.组合),数据时空优化,数据安全方案(数据进站关卡,数据出战关卡),数据并 ...

  3. 个人知识管理系统Version1.0开发记录(02)

    第 一 步 做 什 么 我们该如何入手呢?先来看看目前常用的三个方法. 1.从事物产生的源头出发,层层推进,步步验证,最后开花结果.这种方法经常用于科研项目,或者三期以后的工程,国家政府项目用的较多. ...

  4. 个人知识管理系统Version1.0开发记录(12)

    最近碰到个问题,在五个工作日内阅读一个百万行左右代码量的新项目集合,如何解决呢? 第一个工作日,环境观察.待在那个项目组,看项目成员们在做些什么事情,开发,测试,聊天,或多或少可以收集到一些项目相关的 ...

  5. 个人知识管理系统Version1.0开发记录(10)

    物理分页 这次我们运用Mybatis拦截器来实现物理分页,后面会运用动态sql来实现,或者运用Map/CollectionUtils/StringUtils编写工具类来实现.oracle是运用的row ...

  6. 个人知识管理系统Version1.0开发记录(07)

    模 块 复 用 原本还要测试一会的,突然出现一连串诡异的问题,比如,编译少加载个类啊,输入地址少个字母啊,改几行代码一改就是半小时啊.这是在提醒我们大脑疲倦了,所以果断小结,下次继续.这一次简单完成了 ...

  7. 个人知识管理系统Version1.0开发记录(08)

    切入点 前面,我们已经搭建好了web端的一种基本结构,需要进一步定位的主要问题有三点: 1.界面的选择和确定,用extjs做的初步样式,进一步改动为jqueryUI/html,再进一步改变为HTML5 ...

  8. 个人知识管理系统Version1.0开发记录(05)

    demo controller我们从前面的实现过程可以得出三种普遍使用的信息处理方式:1.操作数据库,对数据进行增删改查,比如运用sqldevloper查看数据信息.2.运用计算机程序语言,对数据进行 ...

  9. 个人知识管理系统Version1.0开发记录(06)

    demo view 夜已深,我们先简单演示一下,完成一个小段落了.涉及工具及技术知识:图形处理软件photoshop cs6,js类库ext. 思路如下: 1.下载ps6,有破解版本的,dll文件覆盖 ...

随机推荐

  1. Python+ Calibre 处理 中文报纸

    import re ##2 line='<a href=nw.D110000renmrb_20180401_1-01.htm><script>document.write(vi ...

  2. Delphi下使用指针的简单总结(指针的赋值,数组和指针的转换,函数指针的使用)

    由于最近公司太忙,好久没有更新我的BLOG了.原来想着写写关于HOOK驱动的文章,可是最后想想好久已经没有做驱动的东西了,怕写出来有错误,于是作罢.开发游戏也有一段时间了,发现使用DELPHI来开发网 ...

  3. ARM上电启动及Uboot代码分析

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qianlong4526888/article/details/27698707 注意:由于文档是去年 ...

  4. SQL Server 不同网段IP通过名称访问

    1, 设置订阅服务器C:\Windows\System32\drivers\etc目录的host文件,添加分发服务器(我的环境是发布服务器与分发服务器 是一起的,所以这里指定的是发布服务器的地址)信息 ...

  5. 001-jpa基本概念以及基础注解

    一.什么是JPA JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. S ...

  6. MySQL server has gone away 问题的解决方法(转)

    mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 造成这样的原因一般是s ...

  7. CentOS7.5基础优化与常用配置

    目录 最小化全新安装CentOS7基础优化 配置yum源 安装常用软件 关闭防火墙 关闭SELinux 优化ulimit 历史命令记录改为1万条 把命令提示符改为绿色 添加vim配置文件 添加一个普通 ...

  8. 通过IP地址和子网掩码与运算计算相关地址

    通过IP地址和子网掩码与运算计算相关地址 知道IP地址和子网掩码后可以算出 网络地址 广播地址 地址范围 本网有几台主机 例一:下面例子IP地址为192.168.100.5 子网掩码是255.255. ...

  9. activiti 数据表设计

    activiti数据表分为5个部分: 通用数据表.流程存储表.身份数据表.运行时数据表.历史数据表 1.通用(general)数据表 以ACT_GE开头 资源表-act_ge_btyearray: 用 ...

  10. EditPlus 4.3.2463 中文版已经发布(10月16日更新)

    距离上个版本在本年5月发布后,EditPlus 网站沉寂多月.日前终于发布了一个新的小版本. 该版本却具有多项改进,值得一提: * Ctrl+Alt+Up/Down 键在列选模式下可插入多个插入点. ...