(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、工程结构图。

最新文章

  1. CSS的两个小知识点 伪类选择器和display:table-cell
  2. mysql 查看语句的执行效率
  3. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
  4. Linux多线程编程——多线程与线程同步
  5. js跨域问题的解决
  6. LR测试https协议设置方法
  7. JUnit---Java单元测试必备工具
  8. poj The Clocks 高斯消元
  9. Convert CString to TCHAR
  10. Java的finally理解
  11. 向量旋转 UPC 2217
  12. 爬取网页内容java
  13. BZOJ 2194 [快速傅里叶变换 卷积]
  14. 第一节 JDK是什么?JRE是什么?JDK和JRE的区别?以及jdk安装和测试。
  15. 操作系统中的几种调度算法(JAVA版)
  16. 安装Twisted
  17. github仓库的使用
  18. CMDB服务器管理系统【s5day89】:部分数据表结构-资产入库思路
  19. C语言 &#183; 还款计算
  20. ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录

热门文章

  1. 【转】jQuery.ajax向后台传递数组问题
  2. 配置oem
  3. mysql中sql注入的随笔
  4. Integer.valueof 和 Integer.parseInt
  5. 前端 html span标签
  6. java-mybaits-00801-逆向工程
  7. Visual Studio 2017企业版 Enterprise 注册码 专业版Professional 激活码key
  8. 数据挖掘-聚类分析(Python实现K-Means算法)
  9. The adidas NMD Camo Singapore consists of four colorways
  10. macbook 蓝牙关闭按钮灰色的