Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako username ulogovanog korisnika iz .jsp stranice dopremiti u servlet radi pravljenja upita

[es] :: Java :: Kako username ulogovanog korisnika iz .jsp stranice dopremiti u servlet radi pravljenja upita

[ Pregleda: 1509 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bantes9
Beograd

Član broj: 119554
Poruke: 1058
*.adsl.verat.net.



+39 Profil

icon Kako username ulogovanog korisnika iz .jsp stranice dopremiti u servlet radi pravljenja upita05.07.2014. u 21:09 - pre 118 meseci
Trebala bi mi mala pomoc oko .jsp, servleta i bean-ova.

Imam index.jsp stranicu gde postoji login forma. Nakon uspesnog logovanja u zavisnosti od privilegija otvara se jedna od 3 predefinisane .jsp stranice (admin, korisnik nivoa 1, korisnik nivoa 2) u okviru kojih je ispisan username korisnika (admin mora odobriti svaku registraciju i zato postoji provera za status aktivan).

Login servlet
Code:
public class Logovanje extends HttpServlet {

     @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String username = request.getParameter("korisnickoIme");
        String password = request.getParameter("sifra");
        Korisnik korisnik = new Korisnik();
        korisnik.setKorisnickoime(username);
        korisnik.setLozinka(password);
         
        try {
            HttpSession sesija = request.getSession(true);
            Class.forName("com.mysql.jdbc.Driver");
            Connection konekcija = DriverManager.getConnection("jdbc:mysql://localhost:3306/laboratorija","root","");
            Statement iskaz = konekcija.createStatement();
            if( !(username.equals("")) && !(password.equals("")) ){
              String upit = "SELECT * FROM korisnici WHERE korisnickoime='"+username+"' AND lozinka='"+password+"'";
              ResultSet rezultat = iskaz.executeQuery(upit);
              if(rezultat.next()){
                  String korisnickoime = rezultat.getString(2);
                  int privilegija = rezultat.getInt(9);
                  int aktiviran = rezultat.getInt(10);
                  korisnik.setKorisnickoime(korisnickoime);
                  korisnik.setPrivilegija(privilegija);
                  korisnik.setAktiviran(aktiviran);
                  
                  sesija.setAttribute("korisnik", korisnik);
                  if(privilegija==1 && aktiviran==1){
                        RequestDispatcher r = request.getRequestDispatcher("/admin.jsp");
                        r.forward(request, response);
                  }
                  else if(privilegija ==2 && aktiviran==1){
                        RequestDispatcher rd = request.getRequestDispatcher("/korisniknivoa1.jsp");
                        rd.forward(request, response);
                  }
                  else if(privilegija ==3 && aktiviran==1){
                        RequestDispatcher rd = request.getRequestDispatcher("/korisniknivoa2.jsp");
                        rd.forward(request, response);
                  
              } 
                 
                  else if(privilegija ==4){
                      sesija.setAttribute("poruka", "Niste aktivirani od strane administratora i nije vam dodeljena privilegija za rad u aplikaciji");
                        RequestDispatcher rd = request.getRequestDispatcher("/greska.jsp");
                        rd.forward(request, response);
                  
              } 
                   
                  else {
                
                sesija.setAttribute("poruka", "Niste aktivirani u sistemu od strane administratora");
                RequestDispatcher rd = request.getRequestDispatcher("/greska.jsp");
                rd.forward(request, response);
            }
            } else {
                
                sesija.setAttribute("poruka", "Uneli ste neispravno korisničko ime ili lozinku");
                RequestDispatcher rd = request.getRequestDispatcher("/greska.jsp");
                rd.forward(request, response);
            }
        }
           else {
                sesija.setAttribute("poruka", "Niste uneli korisničko ime i lozinku");
                RequestDispatcher rd = request.getRequestDispatcher("/greska.jsp");
                rd.forward(request, response);
            }
        }catch(Exception e){
        out.println(e);}
    }

}


Bean Korisnik (izdvojene bitne stavke)
Code:
public class Korisnik {
;
    private String korisnickoime;
    private int privilegija;
    private int aktiviran;

    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    public String getKorisnickoime() {
        return korisnickoime;
    }
    public void setKorisnickoime(String korisnickoime) {
        this.korisnickoime = korisnickoime;
    }

   public int getPrivilegija() {
        return privilegija;
    }
    public void setPrivilegija(int privilegija) {
        this.privilegija = privilegija;
    }
    
     public int getAktiviran() {
        return aktiviran;
    }
    public void setAktiviran(int aktiviran) {
        this.aktiviran = aktiviran;
    }

}


Ukoliko je uspesno logovanje otvara se korisnik.jsp stranica u okviru koje koristeci JSP EL ispiujem username korisnika.

Code:
div id="gornjiMeni">Dobrodošli, ${korisnik.korisnickoime} | <a href="Izloguj">Izloguj se</a></div>



Korisnik na stranici ima formu gde unosi kriterijume za pretragu baze proizvoda. Kako da iz korisnik.jsp stranice i ${korisnik.korisnickoime} izvucem korisnicko ime koje bi u servletu Pretraga iskoristio za upit nad bazom (na osnovu username-a u tabeli baze dobijam informaciju o privilegijama i u skladu sa tim se ispisuju rezultati).

Kada u kodu servleta "Pretraga" rucno unesem username korisnika u upit, dobijam uredno rezultate, tako da je sve u redu osim pribavljanja korisnickog imena iz korisnik.jsp stranice.

Probao sam par varijanti za dobijanje vrednosti ali bezuspesno. Jedna od njih je:

Code:
HttpSession sesija = request.getSession(true);
            Korisnik korisnik = (Korisnik)sesija.getAttribute("korisnickoime");


Hvala unapred na pomoci.

Mrav radi, tegli, i od njega nije postalo ništa,
a majmun se zezao po drveću i od njega je postao čovek.

Brana Crnčević
 
Odgovor na temu

dule_ns
Novi Sad

Član broj: 123863
Poruke: 257
194.247.212.*



+690 Profil

icon Re: Kako username ulogovanog korisnika iz .jsp stranice dopremiti u servlet radi pravljenja upita07.07.2014. u 10:31 - pre 118 meseci
Da bi ti deo koda:

Code:
sesija.getAttribute("korisnickoime");


nešto vratio moraš da imaš deo koda:

Code:
sesija.setAttribute("korisnickoime", obj);


a je ne vidim da si ti to negde odradio.
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.dynamic.sbb.rs.



+45 Profil

icon Re: Kako username ulogovanog korisnika iz .jsp stranice dopremiti u servlet radi pravljenja upita08.07.2014. u 01:23 - pre 118 meseci
Pozdrav, da se nadovezem sa jednim pocetnickim pitanjem iz servleta.

Ako iz jednog servleta upisem podatke u Servlet Context , na primer listu Proizvoda

Code:
getServletContext().setAttribute("lista_proizvoda" , proizvodi);


Sa drugim servletom ocitam podatke i kastujem u odgovarajuci tip ...

Code:
getServletContext().getAttribute("lista_proizvoda");


na koji nacin pozivam da preko drugog servleta mi se ispisu podaci koje napisem u doGet()?
Kada stavim da servlet koji ocitava podatke iz <form> , da on i prikaze podatke , to radi ali kada hocu da podatke prosledim na Servlet Context i sa drugim servletom ocitam podatke tu negde gresim....
web.xml je automatski podesen ,da li treba da se tu izmeni neki url ili da se izbrise, na koji nacin da prilikom klika na neko dugme na html stranici pozove se drugi servlet koji preuzima podatke sa Servlet Context i obradjuje ih ?
Code:
<?xml version="1.0" encoding="UTF-8"?>
  <display-name>PrviServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>PrviServlet</display-name>
    <servlet-name>PrviServlet</servlet-name>
    <servlet-class>PrviServlet.PrviServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>PrviServlet</servlet-name>
    <url-pattern>/PrviServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>DrugiServlet</display-name>
    <servlet-name>DrugiServlet</servlet-name>
    <servlet-class>PrviServlet.DrugiServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DrugiServlet</servlet-name>
    <url-pattern>/DrugiServlet</url-pattern>
  </servlet-mapping>
</web-app>
 
Odgovor na temu

[es] :: Java :: Kako username ulogovanog korisnika iz .jsp stranice dopremiti u servlet radi pravljenja upita

[ Pregleda: 1509 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.