1.proxy日志

2.处理长字符串、转义
This commit is contained in:
chenjinsong
2018-08-01 14:05:32 +08:00
parent 38fda1a98d
commit 2c07f0e82d
7 changed files with 474 additions and 17 deletions

View File

@@ -207,15 +207,32 @@ $(document).ready(function(){
<td>${log.pid}</td>
<td>
<c:if test="${fn:startsWith(log.url, 'http')}">${log.url }</c:if>
<c:if test="${!fn:startsWith(log.url, 'http')}">http://${log.url }</c:if>
<%-- <c:if test="${fn:startsWith(log.url, 'http')}">${log.url }</c:if>
<c:if test="${!fn:startsWith(log.url, 'http')}">http://${log.url }</c:if> --%>
<c:if test="${fn:startsWith(log.url, 'http')}">
<c:set var="url" value="${log.url }"/>
</c:if>
<c:if test="${!fn:startsWith(log.url, 'http')}">
<c:set var="url" value="http://${log.url }"/>
</c:if>
<span data-original-title="${fns:escapeHtml(url)}" class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:stringFormat(url,30)}
</span>
</td>
<td>
<a target="_blank" href='
<c:if test="${fn:startsWith(log.logUri, \"http\")}">${log.logUri }</c:if>
<c:if test="${!fn:startsWith(log.logUri, \"http\")}">http://${log.logUri }</c:if>'>http://${log.logUri }</a>
<c:if test="${fn:startsWith(log.logUri, 'http')}">
<c:set var="logUri" value="${log.logUri }"/>
</c:if>
<c:if test="${!fn:startsWith(log.logUri, 'http')}">
<c:set var="logUri" value="http://${log.logUri }"/>
</c:if>
<a target="_blank" href='${fns:escapeHtml(logUri)}' data-original-title="${fns:escapeHtml(logUri)}" class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:stringFormat(logUri,30)}
</a>
<%-- <c:if test="${fn:startsWith(log.logUri, \"http\")}">${log.logUri }</c:if>
<c:if test="${!fn:startsWith(log.logUri, \"http\")}">http://${log.logUri }</c:if>'>http://${log.logUri }</a> --%>
</td>
<td>${log.refer}</td>
<td><span data-original-title="${fns:escapeHtml(log.refer)}" class="tooltips" data-flag="false" data-html="true" data-placement="top">${fns:stringFormat(log.refer,30)}</span></td>
<td>${log.level}</td>
<!--0动态黑名单FD1静态配置FD2首次分析命中 -->
<td>
@@ -247,7 +264,7 @@ $(document).ready(function(){
<c:if test="${log.streamDir==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.addrList}</td>
<td><span data-original-title="${fns:escapeHtml(log.addrList)}" class="tooltips" data-flag="false" data-html="true" data-placement="top">${fns:stringFormat(log.addrList,30)}</span></td>
<td>${log.serverLocate}</td>
<td>${log.clientLocate}</td>
</tr>

View File

@@ -207,13 +207,30 @@ $(document).ready(function(){
<td>${log.pid}</td>
<td>
<c:if test="${fn:startsWith(log.url, 'http')}">${log.url }</c:if>
<c:if test="${!fn:startsWith(log.url, 'http')}">http://${log.url }</c:if>
<%-- <c:if test="${fn:startsWith(log.url, 'http')}">${log.url }</c:if>
<c:if test="${!fn:startsWith(log.url, 'http')}">http://${log.url }</c:if> --%>
<c:if test="${fn:startsWith(log.url, 'http')}">
<c:set var="url" value="${log.url }"/>
</c:if>
<c:if test="${!fn:startsWith(log.url, 'http')}">
<c:set var="url" value="http://${log.url }"/>
</c:if>
<span data-original-title="${fns:escapeHtml(url)}" class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:stringFormat(url,30)}
</span>
</td>
<td>
<a target="_blank" href='
<c:if test="${fn:startsWith(log.logUri, \"http\")}">${log.logUri }</c:if>
<c:if test="${!fn:startsWith(log.logUri, \"http\")}">http://${log.logUri }</c:if>'>http://${log.logUri }</a>
<c:if test="${fn:startsWith(log.logUri, 'http')}">
<c:set var="logUri" value="${log.logUri }"/>
</c:if>
<c:if test="${!fn:startsWith(log.logUri, 'http')}">
<c:set var="logUri" value="http://${log.logUri }"/>
</c:if>
<a target="_blank" href='${fns:escapeHtml(logUri)}' data-original-title="${fns:escapeHtml(logUri)}" class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:stringFormat(logUri,30)}
</a>
<%-- <c:if test="${fn:startsWith(log.logUri, \"http\")}">${log.logUri }</c:if>
<c:if test="${!fn:startsWith(log.logUri, \"http\")}">http://${log.logUri }</c:if>'>http://${log.logUri }</a> --%>
</td>
<td>${log.refer}</td>
<td>${log.level}</td>
@@ -247,7 +264,7 @@ $(document).ready(function(){
<c:if test="${log.streamDir==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.addrList}</td>
<td title="${fns:escapeHtml(log.addrList)}">${fns:stringFormat(log.addrList,30)}</td>
<td>${log.serverLocate}</td>
<td>${log.clientLocate}</td>
</tr>

View File

@@ -0,0 +1,215 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title>
${logTitle }<spring:message code="log"/>
</title>
<script>
$(document).ready(function() {
//reset
$("#resetBtn").on("click",function(){
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.attr("value",'');
$("#searchForm")[0].reset();
});
//筛选功能
filterActionInit();
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
</div>
<h3 class="page-title">
${logTitle }<spring:message code="log"></spring:message>
<small><spring:message code="date_list"/></small>
</h3>
<h5 class="page-header"></h5>
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/pxy/list" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input name="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input name="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="return page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
<button type="button" class="btn btn-default" id="resetBtn"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/><i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
<!-- 筛选搜索内容栏默认隐藏-->
<div class="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label class="control-label"><spring:message code='protocol_type'/></label>
<form:select path="transProto" class="selectpicker form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="protocol" >
<form:option value="${protocol.itemCode}"><spring:message code="${protocol.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label class="control-label"><spring:message code='direct'/></label>
<form:select path="direction" class="selectpicker form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="direction" >
<form:option value="${direction.itemCode}"><spring:message code="${direction.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="entrance"/></label>
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clj_ip"></spring:message></label>
<input name="capIp" type="text" class="form-control" value="${log.capIp }"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clientip"></spring:message></label>
<input name="sIp" type="text" class="form-control" value="${log.sIp }"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"></spring:message></label>
<input name="dIp" type="text" class="form-control" value="${log.dIp }"/>
</div>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="cfg_id"/></th>
<th><spring:message code="found_time"/></th>
<th><spring:message code="entrance_id"/></th>
<th><spring:message code="clj_ip"/></th>
<th><spring:message code="protocol"/></th>
<th><spring:message code="server_ip"/></th>
<th><spring:message code="client_ip"/></th>
<th><spring:message code="server_port"/></th>
<th><spring:message code="client_port"/></th>
<th>url</th>
<th><spring:message code="deviceid"/></th>
<th><spring:message code="direction"/></th>
<th><spring:message code="stream_type"/></th>
<th><spring:message code="nest_addr_list"/></th>
<th><spring:message code='server_locate'/></th>
<th><spring:message code='client_locate'/></th>
</tr>
</thead>
<tbody>
<c:forEach var="_log" items="${page.list }" varStatus="status">
<tr>
<td>${_log.cfgId }</td>
<td>${_log.foundTime }</td>
<td>${_log.entranceId }</td>
<td>${_log.capIp }</td>
<td>${_log.transProto }</td>
<td>${_log.dIp }</td>
<td>${_log.sIp }</td>
<td>${_log.dPort }</td>
<td>${_log.sPort }</td>
<td>
<span data-original-title="${fns:escapeHtml(_log.url)}" class="tooltips" data-flag="false" data-html="true" data-placement="top">${fns:stringFormat(_log.url,30)}</span>
</td>
<td>
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
<c:if test="${device.itemCode eq _log.deviceId}"><spring:message code="${device.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="direction">
<c:if test="${direction.itemCode eq _log.direction}"><spring:message code="${direction.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
<c:if test="${streamType.itemCode eq _log.streamDir}">${streamType.itemValue}</c:if>
</c:forEach>
</td>
<td>
<span data-original-title="${fns:escapeHtml(_log.addrList)}" class="tooltips" data-flag="false" data-html="true" data-placement="top">${fns:stringFormat(_log.addrList,30)}</span>
</td>
<td title="${_log.serverLocate}">${fns:abbr(_log.serverLocate,20)}</td>
<td title="${_log.clientLocate}">${fns:abbr(_log.clientLocate,20)}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>