2010-09-02 6 views
0

J'ai une page jsp avec une connexion jdbc et en premier chargement, il montre les données avec précision, mais après il montre des tables vides, je pense que la deuxième fois il charge de la mémoire du serveur pascomment recharger la page jsp à chaque demande?

quel est le problème derrière je ne sais pas

ok voici les détails

i une servlet qui maintient la session d'un utilisateur qui se connectent, puis après avoir créé la session, le servlet redirige l'utilisateur vers une page de vue qui est une page jsp et affiche la enregistrements existants dans DB

lorsque le SERV let redirige la page que le jsp peut montrer les enregistrements mais quand j'accède à cette page de n'importe quelle autre page html il est incapable d'afficher les enregistrements ici est le code pour la page de jsp à voir.

<%@ page import="java.sql.ResultSet" %> 
<%@ page import="java.math.BigDecimal" %> 
<%@ page import="java.sql.SQLException" %> 
<%@ page import="java.util.logging.Level" %> 
<%@ page import="java.util.logging.Logger" %> 
<%@ page import="iEHR.cDBProcessor" %> 

<HTML> 
<HEAD> 
<TITLE>View Patient</TITLE> 
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> 
<script type="text/javascript" language="javascript" src="datepicker/main.js"></script> 
        <script type="text/javascript" language="javascript" src="datepicker/prototype-1.js"></script> 
      <script type="text/javascript" language="javascript" src="datepicker/prototype-base-extensions.js"></script> 
      <script type="text/javascript" language="javascript" src="datepicker/prototype-date-extensions.js"></script> 
      <script type="text/javascript" language="javascript" src="datepicker/behaviour.js"></script> 
      <script type="text/javascript" language="javascript" src="datepicker/ratingbar.js"></script> 
          <script type="text/javascript" language="javascript" src="datepicker/datepicker.js"></script> 
             <link rel="stylesheet" href="datepicker/datepicker.css"> 
          <script type="text/javascript" language="javascript" src="datepicker/behaviors.js"></script> 
<style type="text/css"> 
<!-- 
img { 
    border: none; 
} 
.tah10 { 
    font-family: "Times New Roman", Times, serif; 
    font-size: 14px; 
    text-decoration: none; 
    color: #000000; 
    font-style: italic; 
} 
.tah11 { 
    font-family: Tahoma; 
    font-size: 11px; 
    text-decoration: none; 
    color: #000000; 
} 
.ver10 { 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    font-size: 10px; 
    text-decoration: none; 
    color: #000000; 
} 
.ver11 { 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    font-size: 11px; 
    text-decoration: none; 
    color: #000000; 
} 
.tah9 { 
    font-family: Tahoma; 
    font-size: 9px; 
    text-decoration: none; 
    color: #000000; 
} 
.ver9 { 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    font-size: 9px; 
    text-decoration: none; 
    color: #000000; 
} 
td { 
    vertical-align: top; 
    color: 497B99; 
    font-size: 12px; 
    font-style: normal; 
    font-weight: bolder; 
} 
--> 
</style> 
<style type="text/css"> 
<!-- 
.bgtop { 
    background-repeat: repeat-x; 
    background-position: top; 
} 
--> 
</style> 
<style type="text/css"> 
<!-- 
a { 
    font-family: Times New Roman, Times, serif; 
    font-size: 12px; 
    font-weight: bolder; 
    color: 467B99; 
    text-decoration: none; 
} 

.datepicker{ 
    font-family: Times New Roman, Times, serif; 
    font-size: 12px; 
    font-weight: bolder; 
    color: 467B99; 
    text-decoration: none; 
} 
a:hover { 
    font-size: 10px; 
    font-weight: bold; 
    color: FF8400; 
} 
.style1 { 
    color: 467B99; 
    font-family: Times New Roman, Times, serif; 
    font-size: 12px; 
    text-decoration: none; 
    font-style: normal; 
    font-weight: bolder; 
} 
.style2 { 
    font-family: Times New Roman, Times, serif; 
    font-size: 12px; 
    font-style: normal; 
    font-weight: bolder; 
    color: 467B99; 
    text-decoration: none; 
} 
--> 
</style> 
</HEAD> 
<BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0> 
<!-- ImageReady Slices (0005_red.psd - Slices: 03, 04, 05) --> 
<TABLE WIDTH=100% height="100%" BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor="#FFFFFF"> 
    <TR> 
     <TD width="12%"> 
<TABLE WIDTH=159 BORDER=0 CELLPADDING=0 CELLSPACING=0> 
    <TR> 
     <TD COLSPAN=6> 
      <IMG SRC="images/logo.gif" WIDTH=159 HEIGHT=128 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD> 
      <IMG SRC="images/s1.gif" WIDTH=20 HEIGHT=20 ALT=""></TD> 
     <TD> 
      <A HREF="#"> 
       <IMG SRC="images/r1.gif" WIDTH=29 HEIGHT=20 BORDER=0 ALT=""></A></TD> 
     <TD> 
      <A HREF="#"> 
       <IMG SRC="images/r2.gif" WIDTH=31 HEIGHT=20 BORDER=0 ALT=""></A></TD> 
     <TD> 
      <A HREF="#"> 
       <IMG SRC="images/r3.gif" WIDTH=31 HEIGHT=20 BORDER=0 ALT=""></A></TD> 
     <TD> 
      <A HREF="#"> 
       <IMG SRC="images/r4.gif" WIDTH=28 HEIGHT=20 BORDER=0 ALT=""></A></TD> 
     <TD> 
      <IMG SRC="images/s2.gif" WIDTH=20 HEIGHT=20 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=6> 
      <IMG SRC="images/s3.gif" WIDTH=159 HEIGHT=93 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=6> 
      <IMG SRC="images/h1.jpg" WIDTH=159 HEIGHT=32 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=6> 
      <IMG SRC="images/img1.jpg" WIDTH=159 HEIGHT=76 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=6> 
      <IMG SRC="images/img2.jpg" WIDTH=159 HEIGHT=81 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=6> 
      <IMG SRC="images/img3.jpg" WIDTH=159 HEIGHT=79 ALT=""></TD> 
    </TR> 
    <TR> 
      <TD COLSPAN=6> <IMG SRC="images/but1.jpg" ALT="" WIDTH=159 HEIGHT=42 border="0" usemap="#Map"></TD> 
    </TR> 
</TABLE>  </TD> 
     <TD width="12%"> 
<TABLE WIDTH=167 BORDER=0 CELLPADDING=0 CELLSPACING=0> 
    <TR> 
     <TD COLSPAN=2> 
      <IMG SRC="images/h2.jpg" WIDTH=167 HEIGHT=25 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg1.gif" HEIGHT=94> 
<div style="padding:20;padding-top:5;padding-right:10;padding-bottom:0;color:ffffff" class="tah10"> 
<strong>Noesis</strong><br><br> 
<strong>Inovative EHR Services </strong> <br> 
<br> 
</div>  </TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2> 
      <IMG SRC="images/s4.jpg" WIDTH=167 HEIGHT=52 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg2.gif"> 
<div style="padding-left:0px;padding-top:12px;padding-bottom:2"><a href="AddPatient.jsp"><span style="padding-left:20;padding-top:5">Add Patient </span></a></div>  </TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg3.gif" HEIGHT=18> 
<div style="padding-left:20;padding-top:5"><a href="AddPastMedicalHistory.jsp">Add Patient History</a> </div>  

    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg4.gif" HEIGHT=18> 
<div style="padding-left:20;padding-top:5"><a href="AddPatientInsurance.jsp">Add Patient Insurance</a></div>  </TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg5.gif" HEIGHT=18 > 
<div style="padding-left:20;padding-top:5">View Patient Records</div></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg6.gif" HEIGHT=18 > 
<div style="padding-left:20;padding-top:5"><a href="#"></a><a href="AboutUs.jsp">About Us</a></div>  </TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg7.gif" HEIGHT=18 > 
<div style="padding-left:20;padding-top:5"><a href="#"></a><a href="ContactUs.jsp">Contact Us</a></div>  </TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg8.gif" HEIGHT=18 > 
<div style="padding-left:20;padding-top:5"><a href="#"></a></div>  </TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2> 
      <IMG SRC="images/h3.gif" WIDTH=167 HEIGHT=65 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2 background="images/bg9.gif" HEIGHT=94> 
<div style="padding:15;padding-top:3;padding-bottom:3;color:737373" class="tah10"></div>  </TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2> 
      <IMG SRC="images/h4.jpg" WIDTH=167 HEIGHT=41 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD background="images/bg10.jpg" WIDTH=123 HEIGHT=32> 
      <div style="padding-left:15;padding-top:1"> 
      <input name="text" type="text" size="11"> 
      </div></TD> 
      <TD width="44"> <IMG SRC="images/but2.jpg" ALT="" WIDTH=44 HEIGHT=32 border="0" usemap="#Map2"></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2> 
      <IMG SRC="images/s5.jpg" WIDTH=167 HEIGHT=48 ALT=""></TD> 
    </TR> 
    <TR> 
     <TD COLSPAN=2>&nbsp;</TD> 
     </TR> 
</TABLE>  </TD> 
     <TD width="72%"> 
      <table width=100% height="193" border=0 cellpadding=0 cellspacing=0> 
      <tr> 
      <td height=172 colspan="4" ><span class="bgtop"><img src="images/f_m.jpg"></span></td> 
      <td height=172 colspan="2" width="63%" background="images/bg_tile_1.gif" class="bgtop">&nbsp;</td> 
      </tr> 

      <tr> 
      <td height=19 colspan="4" background="images/bg11.gif" >&nbsp;</td> 
      </tr> 
     </table> 
     <%! private ResultSet rsResult; %> 

     <%! cDBProcessor DBProcess = new cDBProcessor(); %> 



     <% 
      DBProcess.ConnectTODB(); 
      if(request.getAttribute("dbrec") != null) 
      { 
       rsResult = DBProcess.statement.executeQuery("SELECT * FROM patients"); 
      }//end if 
      out.println("<table border=\"0\"><tr><td valign=\"top\" >"); 
      out.println("<tr><th>Patient ID</th><th>First Name</th><th>Middle Name</th><th>Last Name</th><th>Gender</th><th>Marital Status</th><th>Phone No.</th><th>Address</th>"); 
      out.println("<th>Date Of Birth</th><th>Last Date Of Exam</th><th>Status</th></tr>"); 

      //data display on page 
      if(rsResult!= null) 
      { 
       try 
       { 
        while (rsResult.next()) 
        { 
         BigDecimal bdPatientID = rsResult.getBigDecimal("patient_id"); 
         String strFirstname = rsResult.getString("first_name"); 
         String strLastname = rsResult.getString("last_name"); 
         String strMiddlename = rsResult.getString("middle_name"); 
         String strGeneder = rsResult.getString("gender"); 
         String strMeritalStatus = rsResult.getString("marital_status"); 
         BigDecimal bdPhoneNo = rsResult.getBigDecimal("phone_no"); 
         String strAddress = rsResult.getString("address"); 
         String strDOB = rsResult.getDate("birth_dt") == null ? "" : rsResult.getDate("birth_dt").toString(); 
         String strDOE = rsResult.getDate("dt_of_exam") == null ? "" :rsResult.getDate("dt_of_exam").toString(); 
         String strStatus; 
         Byte bPatientStatus= rsResult.getByte("status"); 

         if(bPatientStatus == 1) 
         { 
          strStatus = "Active"; 
         }//end if 
         else 
         { 
          strStatus = "Inactive"; 
         }//end else 

         out.println("<tr><td>"+bdPatientID+"</td><td>"+strFirstname+"</td><td>"+strMiddlename+"</td><td>"+strLastname+"</td>"); 
         out.println("<td>"+strGeneder+"</td><td>"+strMeritalStatus+"</td><td>"+bdPhoneNo+"</td><td>"+strAddress+"</td>"); 
         out.println("<td>"+strDOB+"</td><td>"+strDOE+"</td><td>"+strStatus+"</td></tr>"); 

        }//end while 
        out.println("</table>"); 
       }//end try 
       catch (SQLException ex) 
       { 
        out.println("<I>exception</I><br>"); 

       }//end catch 
      }//end if 

     DBProcess.CloseDB(); 
     %> 

     </TD> 
     <TD width="4%" background="images/bg_tile_1.gif" class="bgtop">&nbsp;</TD> 
    </TR> 
    <TR> 
     <TD height="100%" colspan="4">&nbsp;</TD> 
    </TR> 
    <TR> 
     <TD colspan="3"> 
<TABLE WIDTH=768 BORDER=0 CELLPADDING=0 CELLSPACING=0> 
    <TR> 
     <TD width="326"> 
      <IMG SRC="images/s7.gif" WIDTH=326 HEIGHT=48 ALT=""></TD> 
     <TD background="images/bg16.gif" WIDTH=442 HEIGHT=48> 
<div style="padding-top:12;color:A8A8A8" class="tah11"> 
2010 © Copyright iAS. <Br> 
All rights Reserved. Read <a href="#" style="color:467B99" class="tah11">Privacy Policy</a>.</div>  </TD> 
    </TR> 
</TABLE>  </TD> 
     <TD width="4%" background="images/bg_tile_2.gif">&nbsp;</TD> 
    </TR> 
</TABLE> 
<!-- End ImageReady Slices --> 
<map name="Map"> 
    <area shape="rect" coords="39,2,133,27" href="#"> 
</map> 
<map name="Map2"> 
    <area shape="circle" coords="9,12,9" href="#"> 
</map> 
</BODY> 
</HTML> 
+2

lire votre question et demandez-vous si vous fournissez des informations suffisantes. – Bozho

+0

* il montre des tables vides * - pourrait être une variété de problèmes - a-t-il perdu la connectivité DB - y at-il des erreurs dans les journaux - vérifier tout cela et poster plus de détails. – JoseK

+0

ok je pense maintenant que j'ai fourni assez d'informations pour répondre à cette question plz faites moi savoir si un important est manquant @Bozho @JoseK – Badr

Répondre

1

à côté de ces questions signalées par BalusC,

base de

sur le symptôme décrit "lorsque le servlet redirige la page du jsp peut montrer les enregistrements, mais quand j'accéder à cette page de toute autre page html est impossible d'afficher les enregistrements "et le code" if (request.getAttribute ("dbrec")! = null) ".

Mon principal suspect pour la cause du problème est l'utilisation de request.getAttribute ("dbrec")

pour ceux accès direct autre page html, cette valeur susceptible d'être nulle. Je soupçonne que pour le cas de redirection, il peut y avoir un code qui effectuent request.setAttribute (« dbrec », ....)

2

Cela sent le problème de la sécurité des threads. Vous avez déclaré la ResultSet et DBProcess comme variable d'instance de la JSP en utilisant <%! %> déclarations scriptlet, il a été partagée entre toutes les requêtes HTTP. Je ne suis pas sûr de la DBProcess, mais cela est certainement une mauvaise idée pour ResultSet (et aussi par la façon dont Connection et Statement). Comment le DBProcess est utilisé dans le reste du code est également assez effrayant, par ex. DBProcess.statement.executeQuery(). Est-ce que Statementest un domaine public? Je ne sais pas à quoi ressemblent les internes de la classe, mais oui, ça sent trop le problème de la sécurité du fil de fer.

En outre, cette écriture de style 90 de HTML et en utilisant scriptlets JSP vraiment ne conviennent pas à une application "Copyright 2010". Lisez-vous les bons tutoriels/livres?

Questions connexes