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