Connect.Jps
<%@page contentType="application/json" pageEncoding="utf-8"%><%@page import="javax.naming.*, java.util.Date, java.util.List, accessinbuilding.*" %><%@page errorPage="connect_error.jsp"%><%!
AccessInBuildingSessionRemote ejbRef;
%><%
String ret = "{\"error\":\"101\"}";
ejbRef = (AccessInBuildingSessionRemote)session.getAttribute("ejbRef");
if(ejbRef == null) {
InitialContext ic = new InitialContext();
ejbRef = (AccessInBuildingSessionRemote)ic.lookup("accessinbuilding.AccessInBuildingSessionRemote");
session.setAttribute("ejbRef", ejbRef);
}
String getToken = ejbRef.getToken();
if( request.getParameter("token") != null && getToken != "" && getToken.equals(request.getParameter("token")) ) {
String type = request.getParameter("type");
if( "act".equals(type) ) {
ret = "{\"cnt\":\"" + ejbRef.findCountAct() + "\"}";
} else if( "users".equals(type) ) {
List access = ejbRef.getAllUsers( );
int sz = access.size(), act = 0, id = 0, code = 0;
String name = "", stat = "", bgl = "";
if( sz > 0 ) {
ret = "<br><table width='100%' border='0' cellspacing='0' cellpadding='6'>";
ret += "<tr bgcolor='#68d7f8' class='ubg'>";
ret += "<td width='30' align='right'>№</td>";
ret += "<td width='50'>Код</td>";
ret += "<td>ФИО</td>";
ret += "<td width='200' align='center'>Статус</td>";
ret += "</tr>";
for(int i=0; i < sz; i++) {
id = ((Access)access.get(i)).getId();
code = ((Access)access.get(i)).getCode();
name = ((Access)access.get(i)).getName();
act = ((Access)access.get(i)).getAct();
if( act > 0 ) {
bgl = ( (i%2) > 0 ? " bgcolor='#a3eb6f'" : " bgcolor='#f0fbe8'" );
} else {
bgl = ( (i%2) > 0 ? " bgcolor='#d7e1f2'" : " bgcolor='#eff2f7'" );
}
stat = "<div class='radio'>" +
"<input type='radio' name='radio_"+id+"' id='radio_"+id+"_0' value='0'"+ ( act == 0 ? " checked" : "" ) +" /><label class='status' for='radio_"+id+"_0'>нету</label>" +
"<input type='radio' name='radio_"+id+"' id='radio_"+id+"_1' value='1'"+ ( act > 0 ? " checked" : "" ) +" /><label class='status' for='radio_"+id+"_1'>в здании</label>" +
"</div>";
ret += "<tr"+bgl+">"+
"<td align='right'>"+ (i+1) +"</td>"+
"<td>"+ code +"</td>"+
"<td>"+ name +"</td>"+
"<td align='center'>"+ stat +"</td>"+
"</tr>";
}
ret += "</table>";
ret = "{\"users\":\"" + ret + "\"}";
} else
ret = "{\"error\":\"404\"}";
} else if( "logs".equals(type) ) {
List logs = ejbRef.getLogs( );
int sz = logs.size(), id = 0;
Date date;
String descr = "", bgl = "", name = "";
if( sz > 0 ) {
ret = "<br><table width='100%' border='0' cellspacing='0' cellpadding='6'>";
ret += "<tr bgcolor='#68d7f8' class='ubg'>";
ret += "<th width='30' align='right'>№</th>";
ret += "<th width='170' align='left'>Дата</th>";
ret += "<th align='left'>Имя</th>";
ret += "<th align='left'>Лог</th>";
ret += "</tr>";
for(int i=0; i < sz; i++) {
id = ((Log)logs.get(i)).getId();
date = ((Log)logs.get(i)).getDate();
name = ((Log)logs.get(i)).getAssignedAccess().getName();
descr = ((Log)logs.get(i)).getDescr();
bgl = ( (i%2) > 0 ? " bgcolor='#d7e1f2'" : " bgcolor='#eff2f7'" );
ret += "<tr"+bgl+">"+
"<td align='right'>"+ (i+1) +"</td>"+
"<td>"+ date +"</td>"+
"<td>"+ name +"</td>"+
"<td>"+ descr +"</td>"+
"</tr>";
}
ret += "</table>";
ret = "{\"logs\":\"" + ret + "\"}";
} else
ret = "{\"error\":\"505\"}";
} else if( "add".equals(type) ) {
ejbRef.addAccess( request.getParameter("name"), Integer.parseInt(request.getParameter("code")) );
ret = "{\"data\":\"done\"}";
} else if( "find".equals(type) ) {
int findID = ejbRef.findByNameOrCode( request.getParameter("name"), Integer.parseInt(request.getParameter("code")) );
ret = "{\"data\":\""+findID+"\"}";
} else if( "update_act".equals(type) ) {
ejbRef.updateAct( Integer.parseInt(request.getParameter("id")), Integer.parseInt(request.getParameter("act")) );
ejbRef.addLog( Integer.parseInt(request.getParameter("id")), Integer.parseInt(request.getParameter("act")), "" );
ret = "{\"data\":\"done\"}";
} else ret = "{\"error\":\"303\"}";
} else if( request.getParameter("auth_login") != null && request.getParameter("auth_pwd") != null ) {
ejbRef.login(request.getParameter("auth_login"), request.getParameter("auth_pwd"));
getToken = ejbRef.getToken();
if( getToken != "" ) ret = "{\"token\":\"" + getToken + "\"}";
else ret = "{\"error\":\"202\"}";
}
%><%=ret%>
connect_error.jps
<%@page contentType="application/json" pageEncoding="utf-8"%>{"error":"error"}
Так же в проекте были использованы JavaScript, библиотеки jQuery v1.8.2 и jQuery UI v1.9.1, CSS стили и CSS jQuery UI v1.9.1.
Клиентская часть, написанная на PHP
index.php
<?
header("Content-Type: text/html; charset=utf-8");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Система учета прохода в здание</title>
<link href="http://127.0.0.1:8080/AccessInBuilding-war/css.css" type="text/css" rel="stylesheet" />
<link href="http://127.0.0.1:8080/AccessInBuilding-war/css/jquery-ui-1.9.1.custom.css" type="text/css" rel="stylesheet">
<script src="http://127.0.0.1:8080/AccessInBuilding-war/jquery-1.8.2.min.js"></script>
<script src="http://127.0.0.1:8080/AccessInBuilding-war/jquery-ui.js"></script>
<script type='text/javascript'>jQuery.noConflict();</script>
<script src="/js.js"></script>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="700" align="center" class="body">
<tr>
<td>
<h1>Система учета прохода в здание</h1>
<div align="right" class="add_b">
<div align="right">Добавить нового пользователя</div>
</div>
<form action="add.jsp" method="post" enctype="multipart/form-data" class="add_form">
Имя<sup>*</sup>: <input type="text" name="name" id="add_name" value="" />
Код: <input type="text" name="code" id="add_code" value="" />
<input type="submit" value="Добавить пользователя" class="add" /><span class="add_load"> </span>
<div class="add_err"></div>
</form>
<form action="find.jsp" method="post" enctype="multipart/form-data" class="find_form">
Имя<sup>*</sup>: <input type="text" name="name" id="find_name" value="" />
Код: <input type="text" name="code" id="find_code" value="" />
<input type="submit" value="Найти" class="find" /><span class="find_load"> </span>
<div class="find_err">Поиск пользователя, например: <span>Иванов Иван</span> </div>
</form>
<br>
<div class="cnt_act"></div>
<div class="users"></div>
<div align="right"><br><span class="log"></span></div>
</td>
</tr>
</table>
</body>
</html>
