Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:12 Der er 17 kommentarer og
1 løsning

session

Hvad er der galt med min kode?

HttpSession session = request.getSession(true);
session.Variabler.setNavn(res);

Jeg har en klasse som hedder Variabler som har en metode som hedder setNavn. I den klasse hvor koden er findes en variable som hedder res. Det jeg gerne vil er at kører metoden fra Variabler klassen som session objektet
Avatar billede disky Nybegynder
14. november 2001 - 12:15 #1
skriv:

HttpServletRequest session=request.getSession(true);

istedet. for din 1. linie
Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:22 #2
Kører det på session objektet selvfølgelig
Avatar billede disky Nybegynder
14. november 2001 - 12:23 #3
øh hvad ?

skriv istedet:

HttpServletRequest session = request.getSession(true);
session.Variabler.setNavn(res);

Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:25 #4
Hele koden ser sådan ud

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

public class Login extends HttpServlet
    {
        /**
        * Handle the HTTP GET method by building a simple web page.
        */
        public void doPost (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
        PrintWriter        out;
        String        title = \"Log in\";

        // set content type and other response header fields first
            response.setContentType(\"text/html\");
           
           
            String res = request.getParameter (\"navn\");
            String res2 = request.getParameter (\"pass\");
        // then write the data of the response
        out = response.getWriter();
       
        Databaseforbindelsemysql d = new Databaseforbindelsemysql(\"jdbc:mysql://mikmak.dyndns.dk/web?user=mik&password=mik\",\"org.gjt.mm.mysql.Driver\");
       
     
        try {
            /*
            ResultSet rs = sqltest.executeQuery(\"SELECT * FROM person\"); */
           
            out.println(\"<HTML><HEAD><TITLE>\");
            out.println(title);
            out.println(\"</TITLE></HEAD>\");
           
           
            ResultSet rs = d.select(\"SELECT * FROM login\");
            boolean result=false;
           
            while(rs.next()) {
           
               
                String navn = rs.getString(2);
                String pass = rs.getString(3);
                if(res.equals(navn) && res2.equals(pass))
                {
               
                    result=true;
                    HttpSession session = request.getSession(true);
                    System.out.println(session);
                   
                    Variabler.setNavn(res);
                    Variabler.setPassword(res2);
                    Variabler.setNavfarve();
                }
            }
            if(result) {
           
                out.println(\"<FRAMESET border=0 frameSpacing=0 cols=130,*.*>\");
                out.println(\"<FRAME name=nav margin Width=0 marginHeight=0 src=\'Navi\' frameBorder=NO noResize scrolling=no>\");
                out.println(\"<FRAME name=content src=\'../index/side0.htm\' frameBorder=NO noResize>\");
                out.println(\"</FRAMESET>\");
           
                out.println(\"</HTML>\");
               
            //    response.sendRedirect(\"http://mikmak.dyndns.dk:8080/mikk/servlet/Index\");
               
            }
            else if(!result)
                out.println(\"<BODY bgcolor=\'#ffffff\'><center>\");
                out.println(\"<br><br><center><h1>Wrong username or password. Try again!!</center></h1>\");
                out.println(\"</body></html>\");
            d.close();
           
           
            } catch (SQLException s) {
                out.println(\"<h3>SQL fejl: \" + s.toString() + \" \"
                + s.getErrorCode() + \" \" + s.getSQLState() + \"</h3>\");
        }
       
            out.close();
        }
       
        public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
        {
        }
}
Avatar billede disky Nybegynder
14. november 2001 - 12:26 #5
du skulle virkeligt kigge på JSP istedet for at blande design og funktionalitet.
Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:28 #6
D:\\tomcat4.0\\webapps\\mik\\WEB-INF\\classes\\Login.java:52: incompatible types
found  : javax.servlet.http.HttpSession
required: javax.servlet.http.HttpServletRequest
                    HttpServletRequest session = request.getSession(true);
                                                                                      ^
D:\\tomcat4.0\\webapps\\mik\\WEB-INF\\classes\\Login.java:53: cannot resolve symbol
symbol  : variable Variabler 
location: interface javax.servlet.http.HttpServletRequest
                    session.Variabler.setNavn(res);
                                              ^
2 errors

Process completed.

Avatar billede disky Nybegynder
14. november 2001 - 12:31 #7
sorry, dum fejl fra min side.

Det skal selvfølgelig være som du skrev i starten. (man tænker ikke så godt med hovedpine)

Hvad er det som ikke virker i din kode ?
Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:34 #8
Når jeg skriver

HttpSession session = request.getSession(true); session.Variabler.setNavn(res);

så får jeg fejl
Avatar billede disky Nybegynder
14. november 2001 - 12:36 #9
det her er heller ikke gyldigt:
session.Variabler.setNavn(res);


Ligger et objekt af typen Variabler på session stacken ? eller hvad er det du vil ?
Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:39 #10
Det jeg gerne vil opnå er at når der bliver oprettet en session, så bliver navnet bundet til netopt den session via den metode jeg har lavet
Avatar billede disky Nybegynder
14. november 2001 - 12:41 #11
hvad mener du med bundet ?

Du kan gemme navnet som et String objekt på session stacken så du kan tilgå det fra andre sider, men du kan også gemme hele dit variable objekt.
Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:47 #12
Er det ikke i princippet okay som det er
Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:47 #13
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Login extends HttpServlet
    {
        /**
        * Handle the HTTP GET method by building a simple web page.
        */
        public void doPost (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
        PrintWriter        out;
        String        title = \"Log in\";

        // set content type and other response header fields first
            response.setContentType(\"text/html\");
           
           
            String res = request.getParameter (\"navn\");
            String res2 = request.getParameter (\"pass\");
        // then write the data of the response
        out = response.getWriter();
       
        Databaseforbindelsemysql d = new Databaseforbindelsemysql(\"jdbc:mysql://mikmak.dyndns.dk/web?user=mik&password=mik\",\"org.gjt.mm.mysql.Driver\");
       
     
        try {
            /*
            ResultSet rs = sqltest.executeQuery(\"SELECT * FROM person\"); */
           
            out.println(\"<HTML><HEAD><TITLE>\");
            out.println(title);
            out.println(\"</TITLE></HEAD>\");
           
           
            ResultSet rs = d.select(\"SELECT * FROM login\");
            boolean result=false;
           
            while(rs.next()) {
           
               
                String navn = rs.getString(2);
                String pass = rs.getString(3);
                if(res.equals(navn) && res2.equals(pass))
                {
               
                    result=true;
                    HttpSession session = request.getSession(true);
                 
                    Variabler.setNavn(res);
                    Variabler.setPassword(res2);
                    Variabler.setNavfarve();
                    System.out.println(session);
                }
            }
            if(result) {
           
                out.println(\"<FRAMESET border=0 frameSpacing=0 cols=130,*.*>\");
                out.println(\"<FRAME name=nav margin Width=0 marginHeight=0 src=\'Navi\' frameBorder=NO noResize scrolling=no>\");
                out.println(\"<FRAME name=content src=\'../index/side0.htm\' frameBorder=NO noResize>\");
                out.println(\"</FRAMESET>\");
                out.println(\"</HTML>\");
                d.close();
               
            //    response.sendRedirect(\"http://mikmak.dyndns.dk:8080/mikk/servlet/Index\");
               
            }
            else if(!result)
                out.println(\"<BODY bgcolor=\'#ffffff\'><center>\");
                out.println(\"<br><br><center><h1>Wrong username or password. Try again!!</center></h1>\");
                out.println(\"</body></html>\");
                d.close();
           
           
            } catch (SQLException s) {
                out.println(\"<h3>SQL fejl: \" + s.toString() + \" \"
                + s.getErrorCode() + \" \" + s.getSQLState() + \"</h3>\");
        }
       
            out.close();
        }
       
        public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
        {
        }
}
Avatar billede disky Nybegynder
14. november 2001 - 12:51 #14
efter:
;
                    HttpSession session = request.getSession(true);
                 
                    Variabler.setNavn(res);
                    Variabler.setPassword(res2);
                    Variabler.setNavfarve();
                    System.out.println(session);


Skriv

session.setAttribute(\"EtEllerAndetNavn\",Variabler);

Så er det gemt på session stacken, så kan du fra en vilkårlig anden side gøre

Variabler var=(Variabler) session.getAttribute(\"EtEllerAndetNavn\");

p.s. mangler der ikke et sted hvor du definere og opretter et Variable objekt ?
Avatar billede mikmakmuk Nybegynder
14. november 2001 - 12:59 #15
Det kan jeg jo vælge at gøre, men jeg ville hellere bare kalde dem direkte, altså metoderne
Avatar billede disky Nybegynder
14. november 2001 - 13:01 #16
hvis det er på session stacken kan du ikke gøre det direkte.

eller jo du kan

String navn=((Variable)session.getAttribute(\"EtEllerAndetNavn\")).getNavn();

Men du skal stadigvæk lægge dit objekt op på stacken først.
Avatar billede mikmakmuk Nybegynder
14. november 2001 - 17:35 #17
Er det her okay?

HttpSession session = request.getSession(true);
                    Variabler va = new Variabler();
                   
                    va.setNavn(res);
                    va.setPassword(res2);
                    va.setNavfarve();
                   
                    session.setAttribute(\"navn\",va);
                    session.setAttribute(\"password\",va);
                    session.setAttribute(\"navfarve\",va);
Avatar billede mikmakmuk Nybegynder
15. november 2001 - 09:06 #18
eller er det noget vrøvl
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester