mercredi 21 février 2018

output {} JSP Servlet JDBC

I'm a beginner and I have a problem. I did a web application using JSP and Servlet. I have to compare (thought a query in JDBC) the number results in a range. I have to see how many time there is a number in the range When I set my range in the browser, it give me a stranger output: "{}" What does it mean? Why I have that? Thanks a lot!!

Servlet:

package pkg;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class connessioneDatabase
 */
//@WebServlet("/connessioneDatabase")
public class operazioniDatabase extends HttpServlet {
    private static final long serialVersionUID = 1L;
    Connection conn= null;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public operazioniDatabase() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        request.getRequestDispatcher("confrontoDate.jsp").forward(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {



            try {
                Connection conn;
                conn = Connessione.getConnection();

                String Data1=request.getParameter("primaData");
                String Data2 =request.getParameter("secondaData");
                SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
                java.util.Date date1 = formatter.parse(Data1);
                java.sql.Date sdate1 = new java.sql.Date(date1.getTime());
                java.util.Date date2 = formatter.parse(Data2);
                java.sql.Date sdate2 = new java.sql.Date(date2.getTime());

                PrintWriter writer = response.getWriter();
                PreparedStatement ps1 = conn.prepareStatement("SELECT n1, n2, n3, n4, n5, n6 FROM DBO.ARCHIVIO WHERE DATA <=? AND DATA >=?");
                ps1.setDate(1, (Date) sdate1);
                ps1.setDate(2, (Date) sdate2);
                ResultSet rs1= ps1.executeQuery();
                ArrayList<Integer> lista = new ArrayList<Integer>();
                Integer[] c = new Integer[lista.size()];
                while(rs1.next()){

                    lista.add(rs1.getInt("n1"));
                    lista.add(rs1.getInt("n2"));
                    lista.add(rs1.getInt("n3"));
                    lista.add(rs1.getInt("n4"));
                    lista.add(rs1.getInt("n5"));
                    lista.add(rs1.getInt("n6"));


                }
                c= lista.toArray(c);    

                writer.println(confrontaDuplicati(c));  

                             if (conn != null) {
                                 Connessione.closeConnection(conn);
                                 ps1.close();
                                 rs1.close();
                                 }

            }
            catch (SQLException e) {
                e.printStackTrace();
            } catch (ParseException e) {
                e.printStackTrace();
            }
              }  


    public HashMap<Integer, Integer> confrontaDuplicati (Integer a[]) { 

        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        Integer tempInt;
        for (int i = 0; i < a.length; i++)
        {
            tempInt = a[i];
            if(map.containsKey(tempInt))
                {
                    map.put(tempInt, map.get(tempInt) + 1);
                    }
            else
            {
                    map.put(tempInt,1);
            }
        }   

        return map;
    }
    } 

JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Inserisci Date</title>
</head>
<body>
<form action="operazioniDatabase" method="post" name="confronto">
    <label>Prima Data</label> <input type="date" name="primaData"> <br>
    <label>Seconda Data</label> <input type="date" name="secondaData"> <br>
    <input type="submit" value="Confronta" >
</body>
</html>




Aucun commentaire:

Enregistrer un commentaire