Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    89

    Passare da jsp a servlet

    Premetto che mi sto avvicinando solo adesso al mondo java, iniziando a vedere sia jsp che sevlet.
    Pertanto ho fatto questa paginetta di login che mi interroga un database access.. e topo un bel pò di tentativi la pagina funziona...
    il codice in questione è questo se può essere utile a qualcuno chje come me si avvicina a jsp:


    <%@ page import="java.io.*,java.util.*,java.sql.*" %>
    <%@ page session="false" %>
    <html>

    <head>
    <title>CONNESSIONE AL DATABASE login CON JSP</title>
    </head>

    <body>
    <%
    String USR = request.getParameter("usr");
    String PWD = request.getParameter("pws");
    String MODE = request.getParameter("mode");
    if (MODE == null){
    %>
    <FORM METHOD=POST ACTION="login.jsp">
    <INPUT TYPE="text" NAME="usr">

    <INPUT TYPE="password" name="pws">
    <INPUT TYPE="hidden" name="mode" value="ok">
    <INPUT TYPE="submit">

    </FORM>
    <%
    }else{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection connection=DriverManager.getConnection("jdbcdbc:login");
    Statement statement = connection.createStatement();
    String sql="SELECT * FROM Nominativi where username = '"+USR+"' and password='"+PWD+"'";
    ResultSet rs = statement.executeQuery(sql);

    boolean abilitato= false;

    while(rs.next()){
    abilitato = true;
    }

    if (abilitato)
    {
    %>

    Sei autenticato...!!!<%
    }else{
    %>

    NON SEI autenticato...!!!<%
    }
    connection.close();
    }
    %>
    </body>
    </html>




    Bene.... leggendo e chiedendo a qualche programmatore java però, ho appurato che jsp da solo di solito no si usa, ma va appunto in combinazione con le servlet.
    Ora mi chiedevo appunto come potrei trasformare questo esempio che ho copiato sopra in servlet??
    O per lo meno.. mi chiedevo secondo quale teoria và organizzata una struttura del genere...?? Voi come fareste in questo caso.. uitlizzereste solo un servlet o la sipotrebbe usare soltanto per interrogare il db??
    Insomma scusate.. se ho fatto un pò di confusione ma spero potrete farmi un pò di luce..
    Grazie e buona giornatta
    GIuseppe R.
    "Nella vita non si è mai fermi o si va avanti o... si va indietro"

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Nel caso più semplice io farei una paginetta html con due inputuno per la login e un altro per la password; tutto racchiuso in un form lacui action è quello di richiamare una servlet con un method di tipo get, poi nella servlet mi faccio tutto il necessario per la connessione al db e se tutto è ok inoltro ad una pagina ( html o jsp ) di benvenuto altrimenti ad una pagina di reinserimento username e password. Ora non posso crearti l'esempio perchè sono un po' impegnato, semmai più tardi...
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    89

    Ciao Angelo1974

    grazie mille.. credo di aver capito...
    non cso se sono capace... ma ci provo subito.... e poi posto il codice...
    grazie...
    Giuseppe R.
    "Nella vita non si è mai fermi o si va avanti o... si va indietro"

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    89

    ecco....

    ho abbozzato una prima "prova" di servlet...



    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;

    public class Login extends HttpServlet
    {
    //Initialize global variables
    public void init(ServletConfig config) throws ServletException
    {
    super.init(config);
    }

    //Process the HTTP Post request
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
    String USR = request.getParameter("usr");
    String PWD = request.getParameter("pws");

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection connection=DriverManager.getConnection("jdbcdbc:login");
    Statement statement = connection.createStatement();
    String sql="SELECT * FROM Nominativi where username = '"+USR+"' and password='"+PWD+"'";
    ResultSet rs = statement.executeQuery(sql);
    boolean abilitato= false;

    while(rs.next()){
    abilitato = true;
    }

    response.setContentType("text/html");
    PrintWriter out = new PrintWriter (response.getOutputStream());
    out.println("<html>");
    out.println("<head><title>Autenticazione</title></head>");
    out.println("<body bgColor=#33CCFF");
    if (abilitato)
    {
    out.println("<h1>Sei autenticato...!!!</h1>");
    }else{
    out.println("<h1>Sei autenticato...!!!</h1>");
    }
    out.println("</body></html>");
    connection.close();
    out.close();
    }

    /* tratto ugualmente i due metodi GET e POST..... */

    public void doPost(HttpServletRequest request,HttpServletResponse response)
    throws ServletException, IOException
    {
    doGet(request, response);
    } // end doPost(...)

    }




    con un bel pò di errori..


    C:\java>javac Login.java
    Login.java:21: cannot resolve symbol
    symbol : class Connection
    location: class Login
    Connection connection=DriverManager.getConnection("jdbcdbc:login");
    ^
    Login.java:21: cannot resolve symbol
    symbol : variable DriverManager
    location: class Login
    Connection connection=DriverManager.getConnection("jdbcdbc:login");
    ^
    Login.java:22: cannot resolve symbol
    symbol : class Statement
    location: class Login
    Statement statement = connection.createStatement();
    ^
    Login.java:24: cannot resolve symbol
    symbol : class ResultSet
    location: class Login
    ResultSet rs = statement.executeQuery(sql);
    ^
    4 errors


    che dite sono poprio sulla strada sbagliata....
    Del resto ho preso quello che avevo messo nella jsp e l'ho integrato nella servlet che chiamero chìome diceva Angelo dall'action del form della pagina html.
    Spero in vostro aiuto
    Giuseppe R.
    "Nella vita non si è mai fermi o si va avanti o... si va indietro"

  5. #5
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Hai dimenticato import java.sql.*;
    e non trascurare il file web.xml se usi tomcat.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    89
    garzie della risposta.. Angelo...
    giustamente.. ho importato java.sql ma ora anzichè 4 errori.. me ne.. dà 6...
    Sono poroprio in gamba.. veroo?? anzichè milgiorare peggioro


    C:\java>javac Login.java
    Login.java:21: unreported exception java.lang.ClassNotFoundException; must be ca
    ught or declared to be thrown
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    ^
    Login.java:22: unreported exception java.sql.SQLException; must be caught or dec
    lared to be thrown
    Connection connection=DriverManager.getConnection("jdbcdbc:login");
    ^
    Login.java:23: unreported exception java.sql.SQLException; must be caught or dec
    lared to be thrown
    Statement statement = connection.createStatement();
    ^
    Login.java:25: unreported exception java.sql.SQLException; must be caught or dec
    lared to be thrown
    ResultSet rs = statement.executeQuery(sql);
    ^
    Login.java:28: unreported exception java.sql.SQLException; must be caught or dec
    lared to be thrown
    while(rs.next()){
    ^
    Login.java:44: unreported exception java.sql.SQLException; must be caught or dec
    lared to be thrown
    connection.close();
    ^
    6 errors


    Per quanto riguarda il file web.xml ci penso dopo... non credo che quest'errori dipendano da quello vero... ??
    anche perche sono in fase ancora di compilazione...
    Che sarà questa volta??
    Ciao e grazie GIuseppe
    "Nella vita non si è mai fermi o si va avanti o... si va indietro"

  7. #7
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Hai trascurato le eccezioni che si possono generare; infatti ci possono essere delle eccezioni di tipo SQL e delle eccezioni dovute al fatto che si potrebbe non trovare la classe che cerchi di caricare; per ovviare a ciò bisogna inserire un blocco try\catch.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    89
    Ciao Angelo.. grazie ancora.. e spero abìvrai ancora un pò di pazienza..


    asllora ora sebra che la servlet con try e cath nn dà più errori (e io sono molto contentoo.. :gren: )

    Ora fino a questo momento le servlet le avevo messe quì e funzionavano tranquillamente proprio perchè la cartella è gia mappata:

    C:\Programmi\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF\classes

    ma ora dove la metto???

    considerando che il mio html che chiama la servlet (se la chiama bene così nn lo so..??)

    <html>
    <head>
    <title>LOGIN CON JSP</title>
    </head>
    <body>
    <FORM METHOD=POST ACTION="Login">
    <INPUT TYPE="text" NAME="usr">

    <INPUT TYPE="password" name="pws">
    <INPUT TYPE="hidden" name="mode" value="ok">
    <INPUT TYPE="submit">

    </FORM>
    </body>
    </html>


    dicevo questo html si trova quì:
    C:\Programmi\Apache Group\Tomcat 4.1\webapps\ROOT



    Poi... Come faccio a configurare il web.xml se ti riferisci a questo che si trova quì

    C:\Programmi\Apache Group\Tomcat 4.1\webapps\ROOT\WEB-INF

    come faccio a cambiarlo???
    <?xml version="1.0" encoding="ISO-8859-1"?>

    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

    <web-app>
    <display-name>Welcome to Tomcat</display-name>
    <description>
    Welcome to Tomcat
    </description>
    </web-app>


    cosa devo cambiare o aggiungere??
    Ciao e grazie
    Giuseppe R.
    "Nella vita non si è mai fermi o si va avanti o... si va indietro"

  9. #9
    Fai così:

    nell' html:
    codice:
    <html> 
     <head> 
      <title>LOGIN CON JSP</title> 
     </head> 
    <body> 
      <FORM METHOD=POST ACTION="http://127.0.0.1:8080/Login"> 
        <INPUT TYPE="text" NAME="usr">
     
        <INPUT TYPE="password" name="pws"> 
        <INPUT TYPE="hidden" name="mode" value="ok"> 
        <INPUT TYPE="submit">
     
      </FORM> 
    </body> 
    </html>
    X quanto riguarda il web.xml fallo così:
    codice:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app> 
        <servlet>
            <servlet-name>Login</servlet-name>
            <servlet-class>Login</servlet-class>
        </servlet>    
        <servlet-mapping>
            <servlet-name>Login</servlet-name>
            <url-pattern>/Login</url-pattern>
        </servlet-mapping>        
    </web-app>

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    89
    Ciao V1RuZ,
    purtroppo se cambio il mio web.xml con il tuo non mi vede nemmeno i file che sono in ROOT cosa sbaglio??
    Daltronde se chiamo la servlete come tu dici.. la devo mettere nella stessa directory della pagina che la richiama?? o nO??
    Poi.. ho notato che esiste un'altro web.xml quì..

    C:\Programmi\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF

    dove sono configurati tutti gli esempi... non è che va messo là??
    Grazi
    Giuseppe
    "Nella vita non si è mai fermi o si va avanti o... si va indietro"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.