系统"/>
基于kwic的bs系统
1、先看项目结构:
jar包:划红线的是自己做的jar包网上没有,其余的jar包在相应的网站可以找到
2、再看项目描述:
前端:
页面效果展示:
前端通过jQuery的按键点击keyon事件,在事件发送ajax请求,将<textarea> 内的数据以post请求的方式发给服务端demo1,demo1使用相关的对象,完成kwic算法(具体看代码注释,太多不想敲),并且将处理好的数据返回给客户端,在右边的<textarea>中有一个保存按钮,为按钮添加了点击事件,点击按钮后,会发送ajax请求,并且将右边的文本框内的内容发送给后端的服务demo2,后端demo2使用相关的对象调用对应的函数完成整个数据的保存,值得注意的是,我将数据抽象为一个个对象并使用序列化的方式将对象保存在文件中,还有,我这里将整个项目是部署在Linux服务器上,所以保存的目录使用的是Linux的相关目录。对于数据的保存,读者可以选择以流的方式写入到文件中,或者以抽象的数据对象的方式保存在数据库中,具体数据库的连接,请参照我的博客mybatis初探!!谢谢观看
后端代码:
package com.renhui.iter;public interface KwicService {String dokwic(String input);
}
package com.renhui.iter;import java.io.IOException;public interface SaveService {String dosave(String input) throws IOException;
}
package com.renhui.iter.Impl;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;import com.ren.renkwic;
import com.renhui.iter.KwicService;
import com.renhui.util.ComparatorPinYin;public class KwicServiceImpl implements KwicService{private String out="";private String s="";private String [] inputs=null; @Overridepublic String dokwic(String input) {// TODO Auto-generated method stubrenkwic ren= new renkwic();//实现kwic算法(将之前的算法进行打包)if (input!="") { if(input.contains("\n")) {inputs=input.split("\n");for (int count=0;count<inputs.length;count++) {if(inputs[count].split(" ").length>=1) {s=inputs[count];out+=ren.kwic(s, null); }} }else {s=input;int num=input.split(" ").length;if(num>=1) {out= ren.kwic(s, null);}else {out="null,null,null";}}}else {out="null,null,null";}List<String> list=new ArrayList<String>(); //最终进行一个排序//先判断是中文还是英文boolean isEnglis=false;byte[] bytes=out.getBytes();int i=bytes.length;int j=out.length();if(i==j) {isEnglis=true;System.out.println("输入的是英文");}else {System.out.println("输入的是中文");}//如果是中文,那么就按照拼音进行排序,如果是英文,那么就按照英文进行排序String[] ss = out.split("\n").clone();if(isEnglis==false) { Arrays.sort(ss,new ComparatorPinYin());System.out.println("中文按照拼音排序");out="";for (String string : ss) { out=out+string+"\n"; } }else {list = new ArrayList<String>();for (String n : ss) {list.add(n);}list.sort(null);out="";for (int count1 = 0; count1 < list.size(); count1++) {out = out + list.get(count1) + "\n";}}return out;}}
package com.renhui.iter.Impl;import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.renhui.iter.SaveService;
import com.renhui.pojo.Text;
import com.renhui.util.saveutil;
import com.sun.apache.bcel.internal.util.ClassPath;public class SaveServiceImpl implements SaveService{private String [] inputs=null; private String sText="";private int id=0;private Text list=null;private saveutil sv=new saveutil();@Overridepublic String dosave(String input) throws IOException {// TODO Auto-generated method stubFile dir= new File(this.getClass().getResource("").getFile());String ss=dir.getParent().replace('\\', '/');String []s2=ss.split("/").clone(); System.out.println(s2[0]);Map<String, List<String>> map= new HashMap<String, List<String>>();inputs=input.split("\n");for(String s:inputs) {id=s.hashCode();sText=s;list=new Text();list.setId(id);list.setText(sText);sv.saveTofile(s2[0]+"/home/tomcat/apache-tomcat-8.5.61/webapps/test/scourse/text.txt", list); }System.getProperty("user.dir");return "OK";}}
package com.renhui.pojo;public class Text {private int id;private String text;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getText() {return text;}public void setText(String text) {this.text = text;}
}
package com.renhui.service;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.renhui.iter.KwicService;
import com.renhui.iter.Impl.KwicServiceImpl;@WebServlet("/demo")
public class Servicefirst extends HttpServlet {KwicService kwicService=null;@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubresp.setContentType("text/html;charset=utf-8");String input =req.getParameter("key");kwicService=new KwicServiceImpl();String out=kwicService.dokwic(input);resp.getWriter().write(out);}}
package com.renhui.service;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.renhui.iter.SaveService;
import com.renhui.iter.Impl.SaveServiceImpl;@WebServlet("/demo2")
public class ServiceScecond extends HttpServlet {SaveService saveService=null;@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubresp.setContentType("text/html;charset=utf-8");String input =req.getParameter("key2");saveService=new SaveServiceImpl();saveService.dosave(input);}
}
前端代码:
<!DOCTYPE html>
<html><head><meta charset="utf-8"><link rel="stylesheet" href="img/qute.css" /></head><body><div id="sug"><div id="qute1"><img src="img/001.gif" width="100%" height="100%"><img /></div><div id="in1">KWIC输入</div><div id="qute2"><img src="img/002.gif" width="100%" height="100%"><img /></div><div id="in2">KWIC输出</div> <div id="text-left"><textarea id="keyWord" /></textarea></div><div id="qute3"><img src="img/003.gif" width="100%" height="100%"><img /></div><div id="text-right"><textarea id="list" /></textarea><div><button id="save-replay">保存</button></div></div></div></body>
<script src="jquery-1.7.2.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript"> $(function(){ //在键盘弹起的时候发送ajax请求$("#keyWord").keyup(function(){//向服务器发送ajax请求// alert("an");var value=$("#keyWord").val();//获取输入框中的值var list=$("#list");//获取下拉列表$.ajax({url:"./demo",//请求路径type:"post",//请求类型data:{"key":this.value},//发送的数据键值对形式success:function(d){ if(d==" "){return;//如果返回的结果为空则没有}// 如果不为空则var result=d.split("\n");var divs="";for (var i=0;i<result.length;i++){divs+=result[i]+"\n";}list.html(divs); },//请求成功error:function(){}//请求失败}); }); });$("#save-replay").click(function(){var p=$("#list").val();//获取输框中的值$.ajax({url:"./demo2",//请求路径type:"post",//请求类型data:{"key2":p},//发送的数据键值对形式success:function(d){alert("保存成功");},//请求成功error:function(){alert("保存失败");}//请求失败});});
</script>
</html>
css
body,html{height:100%;padding: 0;margin: 0
}
#sug{width: 100%;height: 100%;background-color: #44CEF6;
}
#qute1{width: 10%;height: 18%;float: left;}
#in1{width: 35%;height: 18%;text-align: left;line-height: 200px;margin-left: 0%;font-size: 64px;font-family: "瀹嬩綋";font-weight: bolder;font-style: initial;color: crimson;float: left;
}
#qute2{width: 10%;height: 18%;margin-left: 10%;margin-top: 0%;float: left;
}
#in2{width: 45%;height: 18%;margin-left: 65%;text-align: left;line-height: 200px;font-size: 64px;font-family: "瀹嬩綋";font-weight: bolder;font-style: initial;color: crimson;
}
#text-left{width: 45%;height: 45%;margin-left: 0%;margin-top: 0%;float: left;background-color: aqua;
}
#qute3{width: 10%;height: 18%;margin-left: 0%;margin-top: 5%; float: left;
}
#text-right{width: 45%;height: 45%;margin-left: 55%;margin-top: 0%; background-color: beige;
}
#save-replay{width: :20px;height: 20px;display: flex;justify-content: center;position: absolute;top: 61%;
}
#keyWord{width: 100%;height: 100%;font-size: 24px;font-family: "瀹嬩綋";font-weight: bolder;font-style: initial;color :#BE002F
}
#list{width: 100%;height: 100%;font-size: 24px;font-family: "瀹嬩綋";font-weight: bolder;font-style: initial;color :#BE002F
}
更多推荐
基于kwic的bs系统
发布评论