IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Passage Vector d'une jsp à une servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué Avatar de Rizzen
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 115
    Points : 157
    Points
    157
    Par défaut Passage Vector d'une jsp à une servlet
    Je viens de reprendre la maintenance et l'évolution d'un projet en J2EE (jdk 1.4) d'un site de statistique. j'ai pas mal allégé le code et diminué la complexité des algorithme utilisés mais il me reste une chose à faire pour améliorer encore un peu.

    j'ai une page jsp qui charge un vector suivant des données d'un fichier TXT. Celui-ci est par la suite affiché à l'aide d'une boucle grâce au taglib. J'affiche aussi un graphe grâce à la librairie JFreechart et une servlet, servlet dans laquelle je refais exactement le même boulot de charger le Vector. auriez vous une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    package exploit.servlets;
     
    import java.awt.image.BufferedImage;
    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Calendar;
    import java.util.Properties;
    import java.util.Vector;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.jfree.chart.ChartColor;
    import org.jfree.chart.ChartUtilities;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.DateAxis;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.labels.StandardXYItemLabelGenerator;
    import org.jfree.chart.labels.StandardXYToolTipGenerator;
    import org.jfree.chart.plot.XYPlot;
    import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
    import org.jfree.data.xy.DefaultTableXYDataset;
    import org.jfree.data.xy.XYSeries;
     
    import exploit.chart.SimpleChart;
    import exploit.stats.Stat;
    import exploit.utils.ExploitCalendar;
    import exploit.utils.PropertiesHelper;
     
    public class CustomerActivityServlet extends HttpServlet {
     
    	protected static int DEFAULT_HEIGHT = 400;
    	protected static int DEFAULT_WIDTH = 1000;
     
    	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		try {
    			String customer = request.getParameter("customer");
    			String service = request.getParameter("service");
     
    			//Create Calendar to apply a filter on the stats
    			ExploitCalendar ecalendar = new ExploitCalendar(request.getParameter("dateBegin"), request.getParameter("dateEnd")); 
     
    			Properties globalProperties = null;
    			String globalPropertiesBase = "/resources/global";
    			try {
    			  globalProperties = PropertiesHelper.getPropertyFile(globalPropertiesBase);
    			} catch (Exception e) {
    			  e.printStackTrace();
    			  throw new ServletException("Unable to load properties file : " + globalPropertiesBase + ".properties !");
    			}
     
    			//retrieves the reporting file and the values
    			String sReportingDirectory = globalProperties.getProperty("reporting.directory");
    		    File reportingFile = new File(sReportingDirectory + "/Webs/" + customer + "_" + service + "_globalActivity.txt");
    		    BufferedReader buff = new BufferedReader(new FileReader(reportingFile));
    			Vector listStats = new Vector();
     
    			String theDate="";
    			String theValue="";
    			String line="";
     
    			while ((line = buff.readLine()) != null) {
    				try {
    					theDate = line.substring(0, line.indexOf(":"));
    					theValue = line.substring(line.indexOf(":") + 1, line.length());
    					if (ecalendar.compare(theDate)) {
    						Stat theStatistic = new Stat();
    						theStatistic.setDate(theDate);
    						theStatistic.setDateStat(ecalendar.getDateCompare());
    						theStatistic.setValue(theValue);
    						if (customer.equals("UKB")){
    							theStatistic.setType(Stat.UKB_WEBS_STAT);
    						}
    						if (customer.equals("KluwerCG")){
    							theStatistic.setType(Stat.KLUWER_CG_WEBS_STAT);
    						}
    						listStats.add(theStatistic);
    					}
    				} catch (Exception estat) {
    					System.err.println("[CustomerActivityAvailabilityServlet] Cannot add statistic:" + line);
    				}
    			}
     
    			SimpleChart sc = new SimpleChart();
    			sc.createDataset(listStats);
     
    			JFreeChart chart = sc.createChart(null, null, "# Hits");
     
     
    			// -- get image from chart
    			BufferedImage image = chart.createBufferedImage(DEFAULT_WIDTH, DEFAULT_HEIGHT);
     
    			// -- Write image in the servlet output stream
    			response.addHeader("Content-Type", "image/png");
    			BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
    			ChartUtilities.writeBufferedImageAsPNG(bos, image);
    			bos.close();
     
    		} catch (Exception e) {
    			response.setHeader("Content-Type", "text/plain");
    			response.getWriter().println("Error occured while generating graph.");
    			e.printStackTrace();
    			if (e.getMessage() != null) {
    				response.getWriter().println(e.getMessage());
    			} else {
    				e.printStackTrace(new PrintWriter(response.getWriter()));
    			}
    		}
    	}
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    <%@ page import="exploit.utils.ExploitCalendar"%>
    <HTML>
     
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
    <link href="styles/exploit-layout.css" rel="stylesheet" type="text/css" />
    <link href="styles/exploit-common.css" rel="stylesheet" type="text/css" />
    <link href="styles/TigraCalendar.css" rel="stylesheet" type="text/css" />
     
    <script language="JavaScript" src="scripts/TigraCalendar.js"></script>
    </HEAD>
     
    <%
            String country = request.getParameter("country");
            String siteId = request.getParameter("siteId");
            String menuId = request.getParameter("menuId");
            String service = request.getParameter("service");
            String contentPage = request.getParameter("contentPage");
     
            // period for creating chart
            ExploitCalendar ecalendar = new ExploitCalendar(request.getParameter("dateBegin"), request.getParameter("dateEnd")); 
            
            String dateBegin = ecalendar.getDateBeginForView();
            String dateEnd = ecalendar.getDateEndForView();
            
    %>
    <BODY>
     
    <br />
    <CENTER class="pageTitle">Kluwer CG activity on <c:out value="${requestScope.SERVICE}" /></CENTER>
    <br />
    <br />
    <br />
    <c:choose>
    <c:when test='${requestScope.NB_STATS == "0"}' >
    	<b>No statistics available</b>
    </c:when>
    <c:otherwise>
    	<div style="position:absolute;top:80px;left:20px;">
    		<table cellspacing="8" cellpadding="8" class="description">
    		<tr>
    		    <td>
    				<b>Description:</b> Number of hits from the following IP : 10.248.5.1, 193.173.96.170, 193.173.83.147, 193.173.83.193 on <c:out value="${requestScope.SERVICE}" />.
    			</td>
    		</tr>
    		</TABLE>
    		<br />
    		<!--  Modification -->
    		<form id="KluwerCGactivity-form" action="exploit-template.jsp">
    		<%-- hidden fields --%> 
    		<input type="hidden" name="country"	value="<%=country%>" /> 
    		<input type="hidden" name="siteId" value="<%=siteId%>" /> 
    		<input type="hidden" name="contentPage" value="<%=contentPage%>" />
    		<input type="hidden" name="service" value="<%=service%>" />
    		<input type="hidden" name="menuId" value="<%=menuId%>" />
     
    		<table>
    			<tr>
    				<td>Begin : </td><td><input type="text" name="dateBegin"
    					value="<%=dateBegin%>" /> <script language="JavaScript">
    							new tcal ({
    								// form name
    								'formname': 'KluwerCGactivity-form',
    								// input name
    								'controlname': 'dateBegin'
    							});
     
    						</script>
    				</td>
    				<td rowspan="2">
    					<input type="submit" value="View chart" />
    				</td>
    			</tr>
    			<tr>
    				<td>End : </td><td><input type="text" name="dateEnd"
    					value="<%=dateEnd%>" /> <script language="JavaScript">
    							new tcal ({
    								// form name
    								'formname': 'KluwerCGactivity-form',
    								// input name
    								'controlname': 'dateEnd'
    							});
     
    						</script></td>
    			</tr>
    		</table>
    		</form>
    		<!-- End Modification --> <br />
    	  	<img border="1" src="<c:out value='${requestScope.URL}' />/charts/activity-chart.png?customer=KluwerCG&service=<c:out value='${requestScope.SERVICE}' />&dateBegin=<%= dateBegin %>&dateEnd=<%=dateEnd %>" alt="" />
    	</div>
     
    	<div id="theStatisticsTable" style="position:absolute;top:630px;left:20px;">
    	<TABLE BORDER="1" CELLSPACING="3" CELLPADDING="3">
    	<TR align="center">
    		<TD><b>Date</b></TD>
    		<TD><b># Hits</b></TD>
    	</TR>
    	<c:forEach var="stat" items="${requestScope.LISTE_STATS}" varStatus="cpt" >
    	<TR align="center">
    	    <TD><c:out value="${stat.date}" /></TD>
    	    <TD><c:out value="${stat.value}" /></TD>
    	</TR>
    	</c:forEach>
    	</TABLE>
    	<br />
    	</div>
    </c:otherwise>
    </c:choose>
     
    </BODY>
    </HTML>
    Java'ldire à tout le monde

  2. #2
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Et quelle est la question ?

  3. #3
    Membre habitué Avatar de Rizzen
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 115
    Points : 157
    Points
    157
    Par défaut
    Passer le vector de la jsp à la servlet
    Java'ldire à tout le monde

  4. #4
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Les données passées d'une JSP(code HTML généré) à une servlet passe à travers Http.
    Donc pour cela tu devras les spécifier comme champ d'un formulaire.
    Mais je ne suis pas sur que ce soit souhaitable.
    Normalement, le Vector en question doit être en mémoire avant que tu le passe pas à ta JSP, donc tu pourrais tout à fait le conserver dans ton contexte de session et simplement en comparer les modifs.

    En esperant que cela t'aide et correspond à ton besoin ...

  5. #5
    Membre éprouvé
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Points : 950
    Points
    950
    Par défaut Passage Vector d'une jsp à une servlet
    Bonjour,
    Tu peux utiliser la session. Mettre ton vector dans une session et le récupérer dans la Servlet avec getAttribute

Discussions similaires

  1. include dans une jsp une jsp d'un autre war
    Par trin86 dans le forum JSF
    Réponses: 0
    Dernier message: 31/03/2010, 17h37
  2. Associer une jsp à une servlet
    Par faten85 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/05/2007, 12h57
  3. Réponses: 13
    Dernier message: 30/03/2007, 15h52
  4. Passer des parametres d'une jsp à une servlet
    Par MAJIK_ENIS dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 30/10/2006, 23h39
  5. [JSP]remplir et envoyer un vecteur d'une jsp à une servlet
    Par moeeez dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 31/05/2005, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo