Просмотр договоров, принадлежащих зарегистрированному пользователю - PullRequest
0 голосов
/ 04 ноября 2019

Я хотел бы отобразить в таблице контракты, относящиеся к логину пользователя в моем приложении, для этого я создал карту в своем сервлете аутентификации, чтобы сохранить мне идентификатор и логин авторизованного пользователя, здесь мой код:

   @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")) +""

Но я вижу, что это не работает, он показывает мне все контракты, которые у меня есть в моей базе данных, вот демонстративное изображение:

contrat

В данный момент я связан с пользователем, имеющим идентификационный номер 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>

Я буду очень признателен, если вы поможете мне решить мою проблему, и заранее благодарю вас за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...