Witam,
w związku z tym, że zacząłem rozkminiać servlety, natknąłem się na problem z którym nie jestem w stanie sobie poradzić, dlatego też bardzo proszę o pomoc.
Mam sobie formularzyk z dwoma polami tekstowymi i buttonem. Kod tego formularza wygląda następująco:
<html>
<head>
<title>Przyjecia</title>
</head>
<body>
<form action="/servlet/Przyjmowanie" method="POST"><div align="center">
</div><p align="center">Sczytaj srodkowy kod etykiety<br></p><p align="center"> <input type="text" name="srodek" size="40"></p>
<p align="center">Sczytaj dolny kod etykiety</p><p align="center"><input type="text" name="dol" size="40
"></p>
<p align="center"> <input type="submit" value="Potwierdzam" name="potwierdzam"></p>
</form>
</body>
</html>
Kliknięcie buttona potwierdzam, chciałbym żeby skutkowało uruchomieniem servletu, który zapisze mi w bazie wpisane w formularzu dane i taki servlet mam napisany, poniżej jego kod:
package przyjecie;
import java.io.*;
import java.sql.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
public class Przyjmowanie extends HttpServlet {
private static String dzisiaj;
private static void generujDzisiaj() {
Date data = Calendar.getInstance().getTime();
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
dzisiaj = formatter.format(data);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
generujDzisiaj();
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
String connectionURL = "jdbc:mysql://localhost:3306/przyjecia";
Connection connection;
try {
String srodek = request.getParameter("srodek");
String dol = request.getParameter("dol");
pw.println(srodek);
pw.println(dol);
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(connectionURL, "develo",
"develo");
PreparedStatement pst = connection
.prepareStatement("insert into przyjece "
+ "(srodek, dol, data) values(?,?,?)");
pst.setString(1, srodek);
pst.setString(2, dol);
pst.setString(3, dzisiaj);
int i = pst.executeUpdate();
if (i != 0) {
pw.println("<br>Dodano do bazy");
} else {
pw.println("Jakiś błąd.");
}
} catch (Exception e) {
pw.println(e);
}
}
}
Żeby było wszystko kompletne, zamieszczam jeszcze zawartość web.xml - to może ułatwi :) Ja nie wiem gdzie może tkwić błąd, a tkwi gdzieś na pewno, ponieważ o ile mój formularz się odpala poprawnie, o tyle servlet już śmigać nie chce...
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<description>Przyjmowanie</description>
<display-name>Servlet do przyjmowania</display-name>
<servlet-name>Przyjmowanie</servlet-name>
<servlet-class>przyjecie.Przyjmowanie</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Przyjmowanie</servlet-name>
<url-pattern>/Przyjmowanie.html</url-pattern>
</servlet-mapping>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
Będę wdzięczny za pomoc :)
Pozdrawiam.