打包过程
将网站程序打成war包,使用clean package;
将war包放到服务器的tomcat上的webapps中;
在conf的目录下更改server.xml文件:
加上如下编码,更改编码方式,防止乱码
URIEncoding="UTF-8"
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8443" />
在logs目录下有tomcat的访问记录,如下:
[root@hadoop11 logs]# ls catalina.2015-08-14.log host-manager.2015-08-14.log localhost_access_log.2015-08-14.txt catalina.out localhost.2015-08-14.log manager.2015-08-14.log
localhost_access_log.2015-08-14.txt
这个是记录的访问,里面有输入的记录值,用于分析。
为了方便统计,要改server.xml里的,修改的是日志文件,如下:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="hadoop11_access_log." suffix=".txt" fileDateFormat="yyyy-MM-dd-HH-mm" pattern="%h %l %u %t "%r" %s %b" />
prefix是前缀,suffix是后缀,fileDataFormat是频率
使用ajax触发异步请求,如下:
使用的是jquery的autocomplete的插件,会在后台向uri发送请求,服务器会返回一个json结构数据的信息到前台,在页面上展示。
<script type="text/javascript"> $(document).ready(function(){ $("#query").autocomplete({ source : function(request, response){ $.ajax({ //这里是请求服务器的处理类 url : "http://hadoop11:8080/web/suggest.do", //这里的dataType是response回来的数据结构 dataType : "json", //data是传送过去的数据 data : { query : $("#query").val() }, //响应成功的话就success success : function(data){ //这里找的是action里的类,类里面的result属性,是一个set集合 //这里返回的是一个集合,以json的结构返回 //struts2里,加入到值栈的对象,会先对属性做get赋值,再执行要求的方法 response($.map(data.result, function(item){ return {value:item} })); } }); }, minLength:1, }); }); </script>
public class SearchAction extends ActionSupport { String text; String query; Set<String> result; public Set<String> getResult() { //this.result = RedisTool.zrevrange(query, 0, 5); result = new HashSet<String>(); result.add("aaa"); result.add("子"); return result; } 。。。。。。 。。。。。
这里的类对应上面的result。
需要的脚本
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
ui又依赖于:
<script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
在使用redis时,使用sort排列来插入索引;
hGetAll 键,这个是列出该键下的所有值。
通过query传过去一个值:由redis去查询后返回一个set集合。
public static Set<String> zrevrange(String text, int i, int j) { // TODO Auto-generated method stub try{ CreateJedisObj(); //hadoop_users return jedis.zrevrange(text, 0, 5); }catch(Exception e){ e.printStackTrace(); jedis = null; return null; } }
redis的操作可以熟悉下。
在实际开发中,redis数据库的更新可以逐个更新,在reduce的过程中去删除redis原有的数据记录。