Hjælp til overførsel af parametre til servlet-klasse
Hejsa...som i måske kan se prøver jeg her at lave et lille servlet projekt...men det driller ;(Jeg tror jeg har gennemskuet hvad problemet er, men jeg kan ikke finde nogen løsning på det!
Problem : Jeg ønsker at sende 7 ekstra parametre fra valider.java over til SAMME instans af servlet1-klassen, som RequestDispatcher rd forward'er response og request objektet til...men netop pga. rd sender respone/request til servlet1, kan jeg ikke modtage de 7 ekstra parametre via samme metode? De 7 parametre kommer fra databasen og de skal sendes til servlet1-klassen for at blive sat ind i hver sit html-tekstfelt...
lige nu har prøvet at gøre det på en meget alternativ måde, fordi jeg ikke kender den "rigtige" vej...men jeg tror stadig at jeg arb. på 2 forskellige instanser af servlet1-klassen og det er derfor det ikke virker...!?
//---------------------INDEX.HTM---------------------------
package mypackage1;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.PrintWriter;
import java.io.IOException;
import javax.naming.*;
import java.sql.*;
import javax.sql.*;
import oracle.jdbc.driver.*;
public class Valider extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
Connection conn=null;;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){//out.println(e);
}
try
{
conn = DriverManager.getConnection("jdbc:oracle:thin:@delfi2.lyngbyes.dk:1521:LUC","marbak3","marbak3");
}
catch(SQLException sqle)
{
//out.println(sqle);
}
String bruger=request.getParameter("bruger");//fra tekstfelterne!
String kode=request.getParameter("kode");//fra tekstfelterne!
PreparedStatement pstmt=null;
ResultSet res=null;
try
{
pstmt=conn.prepareStatement("select * from kunde where brugernavn ='"+bruger+"'");
res = pstmt.executeQuery();
//out.println(" 1 ");
while(res.next())//for hvér rækker som matcher select-statementet...
{
//out.println(" 2 ");
String rækkekode= res.getString("adgangskode");
String rækkenavn= res.getString("brugernavn");
if(rækkekode.equals(kode))//Hvis koden i db matcher koden som brugerne har indtastet...
{
Servlet1 s1;
s1.test(rækkenavn);
//du er logget ind!!
RequestDispatcher rd;//et interface, dvs. man får nogle metoder til rådighed - et objekt som kan finde andre objekter fx. JSP-sider eller andre servletter
rd = this.getServletContext().getRequestDispatcher("/servlet1");//initialire R.D.O'et, samt fortæller HVOR objekterne skal forwardes til...
rd.forward(request,response);//R.D.O. sender nu request og response objektet videre til servlet1-klassen
}
res.close();
pstmt.close();
}
}
catch(SQLException sqle)
{
System.out.println("Brugernavn og/eller adgangskode er ugyldigt!"+sqle);
}
RequestDispatcher rd;//et interface, dvs. man får nogle metoder til rådighed - et objekt som kan finde andre objekter fx. JSP-sider eller andre servletter
rd = this.getServletContext().getRequestDispatcher("/fejllogin.htm");//initialire R.D.O'et, samt fortæller HVOR objekterne skal forwardes til...
rd.forward(request,response);
}
}
//---------------------VALIDER.JAVA------------------------
package mypackage1;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.PrintWriter;
import java.io.IOException;
import javax.naming.*;
import java.sql.*;
import javax.sql.*;
import oracle.jdbc.driver.*;
public class Valider extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
Connection conn=null;;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){//out.println(e);
}
try
{
conn = DriverManager.getConnection("jdbc:oracle:thin:@delfi2.lyngbyes.dk:1521:LUC","marbak3","marbak3");
}
catch(SQLException sqle)
{
//out.println(sqle);
}
String bruger=request.getParameter("bruger");//fra tekstfelterne!
String kode=request.getParameter("kode");//fra tekstfelterne!
PreparedStatement pstmt=null;
ResultSet res=null;
try
{
pstmt=conn.prepareStatement("select * from kunde where brugernavn ='"+bruger+"'");
res = pstmt.executeQuery();
//out.println(" 1 ");
while(res.next())//for hvér rækker som matcher select-statementet...
{
//out.println(" 2 ");
String rækkekode= res.getString("adgangskode");
String rækkenavn= res.getString("brugernavn");
if(rækkekode.equals(kode))//Hvis koden i db matcher koden som brugerne har indtastet...
{
Servlet1 s1 = new Servlet1();
s1.test(rækkenavn);
//du er logget ind!!
RequestDispatcher rd;//et interface, dvs. man får nogle metoder til rådighed - et objekt som kan finde andre objekter fx. JSP-sider eller andre servletter
rd = this.getServletContext().getRequestDispatcher("/servlet1");//initialire R.D.O'et, samt fortæller HVOR objekterne skal forwardes til...
rd.forward(request,response);//R.D.O. sender nu request og response objektet videre til servlet1-klassen
}
res.close();
pstmt.close();
}
}
catch(SQLException sqle)
{
System.out.println("Brugernavn og/eller adgangskode er ugyldigt!"+sqle);
}
RequestDispatcher rd;//et interface, dvs. man får nogle metoder til rådighed - et objekt som kan finde andre objekter fx. JSP-sider eller andre servletter
rd = this.getServletContext().getRequestDispatcher("/fejllogin.htm");//initialire R.D.O'et, samt fortæller HVOR objekterne skal forwardes til...
rd.forward(request,response);
}
}
//---------------------SERVLET1.JAVA-----------------------
package mypackage1;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.PrintWriter;
import java.io.IOException;
public class Servlet1 extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
public String navn="";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void test(String rækkenavn)
{
navn=rækkenavn;
System.out.println(navn+"2");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Servlet1</title></head>");
out.println("<body>");
out.println("<table width=\"100%\" border=\"0\">");
out.println("<tr>");
out.println("<td width=\"10%\"><strong>Brugerinfo :</strong></td>");
out.println("<td width=\"44%\"> </td>");
out.println("<td width=\"46%\"> </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>Fornavn</td>");
out.println("<td><input type=\"text\" name=\"textfield\"></td>");
out.println("<td> </td>");
out.println("<tr>");
out.println("<td>Efternavn</td>");
out.println("<td><input type=\"text\" name=\"textfield2\"></td>");
out.println("<td> </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>Adresse</td>");
out.println("<td><input type=\"text\" name=\"textfield3\"></td>");
out.println("<td> </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>Post nr.</td>");
out.println("<td><input type=\"text\" name=\"textfield4\"></td>");
out.println("<td> </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>Tlf.</td>");
out.println("<td><input type=\"text\" name=\"textfield5\"></td>");
out.println("<td> </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>Email</td>");
out.println(navn+"1");
out.println("<td><input type=\"text\" name=\"textfield6\"value="+navn+"></td>");
out.println("<td> </td>");
out.println("</tr>");
out.println("</table>");
out.println("<form name=\"form1\" method=\"post\" action=\"servlet2\">");
out.println("<table width=\"100%\" border=\"0\">");
out.println("<tr>");
out.println("<td width=\"10%\">Varer</td>");
out.println("<td width=\"62%\"> </td>");
out.println("<td width=\"28%\"> </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td> </td>");
out.println("<td> </td>");
out.println("<td><input type=\"submit\" name=\"Submit\" value=\"Gå til kassen -->\"></td>");
out.println("</tr>");
out.println("</table>");
out.println("<p>The servlet has received a POST. This is the reply.</p>");
out.println("</body></html>");
out.close();
}
}
