Я хотел бы отобразить в таблице контракты, относящиеся к логину пользователя в моем приложении, для этого я создал карту в своем сервлете аутентификации, чтобы сохранить мне идентификатор и логин авторизованного пользователя, здесь мой код:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String login1=request.getParameter("login1");
String password1=request.getParameter("password1");
String destination="/WEB-INF/Acceuil_proprietaire.jsp";
Connection c=Cnx.getcnx();
try {
PreparedStatement st=c.prepareStatement("select * from users where login=? and password=?");
st.setString(1, login1);
st.setString(2, password1);
ResultSet res=st.executeQuery();
if(res.next()){
Map<String, String> user = new HashMap<String,String>();
user.put("id", String.valueOf( res.getInt(1) ) );
user.put("login", String.valueOf( res.getString(8) ) );
request.getSession().setAttribute("currentUser", user);
System.out.println("connecter avec succes");
if(res.getString("role").trim() == "proprietaire"){
destination="/WEB-INF/Acceuil_proprietaire.jsp";
}
System.out.println("hello "+res.getString("role"));
if(res.getString("role").equals("locataire")){
destination="/WEB-INF/Acceuil_locataire.jsp";
}
if(res.getString("role").equals("admin")){
destination="/WEB-INF/Acceuil_administrateur.jsp";
}
}
else {
request.setAttribute("msg1","Login ou mot de passe incorrecte !");
destination="/WEB-INF/Page_de_cnx.jsp";
}
} catch (SQLException ex) {
Logger.getLogger(Authentification.class.getName()).log(Level.SEVERE, null, ex);
}
getServletContext().getRequestDispatcher(destination).forward(request, response);
}
}
Затем я зашел в свой jsp и создал карту, которая извлекает карту, которую я вставил в свой сервлет аутентификации, следующим образом:
Map user = (Map) session.getAttribute ("currentUser");
После того, как я поставил свой запрос и дал ему в качестве условия просто показать мне контракты вошедшего в систему пользователя, вот мой код, чтобы лучше понять:
<%
Connection c=Cnx.getcnx();
Statement st=c.createStatement();
Map<String,String> user = (Map<String,String>) session.getAttribute("currentUser");
ResultSet re=st.executeQuery("select null, c.cin_locataire, c.cin_proprietaire, c.date_debut, c.date_fin, c.type_contrat, c.user_id from contrat c , users u where u.id="+ Integer.parseInt(user.get("id")) +"") ;
%>
youувидел, что я поставил для условия:
where u.id="+ Integer.parseInt(user.get("id")) +""
Но я вижу, что это не работает, он показывает мне все контракты, которые у меня есть в моей базе данных, вот демонстративное изображение:
В данный момент я связан с пользователем, имеющим идентификационный номер 6, поэтому он не должен показывать мне также контракт пользователя с идентификатором 8.
я правда не знаю откуда пришла ошибкаs.
Вот весь мой jsp код, если вам нужно:
<%@page import="controller.Cnx"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.Map"%>
<!DOCTYPE html>
<%
Connection c=Cnx.getcnx();
Statement st=c.createStatement();
Map<String,String> user = (Map<String,String>) session.getAttribute("currentUser");
ResultSet re=st.executeQuery("select null, c.cin_locataire, c.cin_proprietaire, c.date_debut, c.date_fin, c.type_contrat, c.user_id from contrat c , users u where u.id="+ Integer.parseInt(user.get("id")) +"") ;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="Sufee Admin - HTML5 Admin Template">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="apple-touch-icon" href="apple-icon.png">
<link rel="shortcut icon" href="favicon.ico">
<link rel="stylesheet" href="vendors/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="vendors/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="vendors/themify-icons/css/themify-icons.css">
<link rel="stylesheet" href="vendors/flag-icon-css/css/flag-icon.min.css">
<link rel="stylesheet" href="vendors/selectFX/css/cs-skin-elastic.css">
<link rel="stylesheet" href="vendors/jqvmap/dist/jqvmap.min.css">
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="css/style.css.map.css">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="https://kit.fontawesome.com/e3fd0d5f24.js" crossorigin="anonymous"></script>
<title>Contrat</title>
</head>
<body>
<aside id="left-panel" class="left-panel">
<nav class="navbar navbar-expand-sm navbar-default" style="flex-flow:column wrap;">
<div class="navbar-header">
<a class="navbar-brand" href="#">Gestion parkings</a>
<a class="navbar-brand hidden" href="./"><img src="images/logo2.png" alt="Logo"></a>
</div>
<div id="main-menu" class="main-menu collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="nav-item ">
<a href="Gestion_des_locaux" class="nav-link" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-arrow-alt-circle-right" style="margin-right: 20px;" selected></i>Gestion locaux</a>
</li>
<li class="nav-item ">
<a href="Place_locaux" class="nav-link" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-arrow-alt-circle-right" style="margin-right: 20px;"></i>Places</a>
</li>
<li class="nav-item ">
<a href="#" class="nav-link" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-arrow-alt-circle-right" style="margin-right: 20px;"></i>Contrats</a>
</li>
</ul>
</div>
</nav>
</aside>
<nav class="navbar" style="height:70px;" id='nav-proprietaire'>
<ul class="nav navbar-nav">
<li class="nav-item ">
<a href="Page_de_cnx" class="nav-link" aria-haspopup="true" aria-expanded="false" style="padding-left: 1430px; text-transform: uppercase"> <i class="fas fa-exclamation-circle" style="margin-right: 20px;"></i>Déconnection</a>
</li>
</ul>
</nav>
<label style="text-align: center; text-transform: uppercase; font-size: 30px; color:#0e9ed8;">All contrats :</label>
<table class="table table-striped table-bordered" style="margin-top: 20px;" id="table1">
<thead>
<tr class="table-active">
<th scope="col">Cin_locataire</th>
<th scope="col">Cin_proprietaire</th>
<th scope="col">Date debut</th>
<th scope="col">Date fin</th>
<th scope="col">Type de contrat</th>
<th scope="col">User id</th>
</tr>
</thead>
<tbody>
<%while(re.next()){%>
<tr>
<th scope="row"><%=re.getObject(2)%></th>
<td><%=re.getObject(3)%></td>
<td><%=re.getObject(4)%></td>
<td>><%=re.getObject(5)%></td>
<td><%=re.getObject(6)%></td>
<td><%=re.getObject(7)%></td>
</tr>
<%}%>
</tbody>
</table>
<script src="vendors/jquery/dist/jquery.min.js"></script>
<script src="vendors/popper.js/dist/umd/popper.min.js"></script>
<script src="vendors/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="assets/js/main.js"></script>
<script src="js/dataTables.bootstrap4.min.js"></script>
<script src="js/jquery-3.3.1.js"></script>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/jquery.dataTables.min.js"></script>
<script src="vendors/chart.js/dist/Chart.bundle.min.js"></script>
<script src="assets/js/dashboard.js"></script>
<script src="assets/js/widgets.js"></script>
<script src="vendors/jqvmap/dist/jquery.vmap.min.js"></script>
<script src="vendors/jqvmap/examples/js/jquery.vmap.sampledata.js"></script>
<script src="vendors/jqvmap/dist/maps/jquery.vmap.world.js"></script>
</body>
</html>
Я буду очень признателен, если вы поможете мне решить мою проблему, и заранее благодарю вас за вашу помощь!