2013-08-13 16 views
6

Ho creato una semplice pagina di accesso in cui l'utente fornirà un nome utente e una password, e quindi verrà archiviata in sessione. Dopo aver fatto clic sul pulsante di invio, verrà visualizzato l'utente di benvenuto o il nome. E se l'utente aspetta qualche secondo, la sessione scadrà e tornerà automaticamente alla pagina di accesso.Creare una semplice pagina di accesso utilizzando jsp e sessione

Qui è la mia pagina di login

<%@ page import="java.io.*,java.util.*" language="java" contentType="text/html;      
charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<jsp:useBean id="user" class="user.LoginUser" scope="session"></jsp:useBean> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 

<title>login</title> 
</head> 
<body> 

<h1><center>Give your login details</center></h1> 
<form method="post" action="check.jsp"> 
Username:<input type="text" name="username" size="20" value="<%=user.getUser() %>" >  <br> 
Password:<input type="password" name="password" size="20" value=<%=user.getPassword() %> ><br> 
<input type="submit"> 
</form> 

</body> 
</html> 

ora in check.jsp sto facendo la mia parte per il controllo username e password

<%@ page import="java.io.*,java.util.*" language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 
<jsp:useBean id="user" class="user.LoginUser" scope="session"></jsp:useBean> 
<jsp:setProperty name="user" property="*"/> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>login checking</title> 
</head> 
<body> 
<% 

String USER=user.getUsername(); 
int PASSWORD=user.getPassword(); 
if(USER.equals("abhirup")) 
{ 
if(PASSWORD==54321) 
{ 
    pageContext.forward("display.jsp"); 
} 
else 
{ 
    out.println("Wrong password"); 
    pageContext.include("login.jsp"); 
} 
pageContext.include("login.jsp"); 

} 



%> 

</body> 
</html> 

e poi finalmente sto mostriamo nella display.jsp

<%@ page import="java.io.*,java.util.*" page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 
<jsp:useBean id="user" class="user.LoginUser" scope="session" ></jsp:useBean> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Display</title> 
</head> 
<body> 
<% String title="Welcome : successful login"; 
out.println(title);%> 
<h3><center>Your Name:Abhirup Parui</center></h3><br> 
Username<%=user.getUsername()%><br> 
<%session.setMaxInactiveInterval(20); 
pageContext.include("login.jsp"); 
%> 
</body> 
</html> 

e anche questo è il mio file LoginUser.java

package user; 

public class LoginUser { 
String username; 
int password; 

    public void setUsername(String value) 
    { 
      username=value; 
    } 
    public void setPassword(int value) 
    { 
     password=value; 
    } 
public String getUsername(){return username;} 
public int getPassword(){return password;} 

} 

Sto usando Eclipse IDE e server Tomcat. Eclipse non ha mostrato un singolo errore in nessuna delle pagine ma ancora quando eseguo la mia pagina login.jsp.

I am getting this error on running login.jsp

Ho seguito questa link

ti prego, aiutami a trovare i miei errori.

Aggiornamento

posso correre con successo la mia pagina di login. I am getting this error now, but could not figure out where is the error. last part of the error is this

come risolvere questi errori. help

risposta

4

Poiché si sta tentando di accedere a login.jsp direttamente dal browser, è necessario spostarlo dalla directory WEB-INF - i file in WEB-INF non sono accessibili al pubblico. Se sposti login.jsp su una directory e inserisci http://localhost:8088/abhirup/login.jsp nel tuo browser, dovrebbe sollevare la pagina. Tuttavia, è una pratica abbastanza comune mettere pagine jsp sotto WEB-INF/jsp o qualcosa di simile e usare un servlet per intercettare ed elaborare le richieste e poi far avanzare il servlet alla pagina jsp appropriata.

Si ha un errore di sintassi sulla riga 1, colonna 46 di display.jsp perché si ha la parola page prima della dichiarazione language. Modificare questa:

<%@ page import="java.io.*,java.util.*" page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 

a questo:

<%@ page import="java.io.*,java.util.*" language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
+0

Sì, funziona. Puoi spiegare perché le pagine jsp sono state mantenute nella cartella WEB-INF per impostazione predefinita? – insanity

+0

In genere le persone inseriscono i file jsp in WEB-INF in modo che non siano accessibili pubblicamente. I servlet sono esposti tramite un URL pubblico definito in web.xml, quindi la richiesta va a un servlet, il servelet lo elabora e quindi inoltra alla richiesta in una pagina jsp usando qualcosa come 'request.getRequestDispatcher (" percorso/a/mio /page").forward(request, response); '. – clav

+0

grazie @clav – insanity

1

Ho anche provato lo stesso codice e ho trovato qualche errore di due file JSP

mio login.jsp corretta codice è come riportato qui di seguito:

<%@ page import="java.io.*,java.util.*" language="java" contentType="text/html;      
charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ page import="user.LoginUser"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> 
<jsp:useBean id="user" class="user.LoginUser" scope="session"></jsp:useBean> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 

<title>Login page</title> 
</head> 
<body> 

<h1><center>Give your login details</center></h1> 
<form method="post" action="check.jsp"> 
User name:<input type="text" name="username" size="20" value="<%=user.getUsername() %>"><br> 
Password:<input type="password" name="password" size="20" value="<%=user.getPassword()%>" ><br> 
Submit <input type="submit"> 
</form> 

</body> 
</html> 

codice check.jsp corretto è il seguente:

<%@ page import="java.io.*,java.util.*" language="java" contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%> 
<%@ page import="user.LoginUser"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> 


<jsp:useBean id="user" class="user.LoginUser" scope="session"></jsp:useBean> 
<jsp:setProperty name="user" property="*"/> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Login checking</title> 
</head> 
<body> 
<% 

String USER=user.getUsername(); 
String PASSWORD=user.getPassword(); 
if(USER.equals("admin")) 
    { 
if(PASSWORD.equals("admin")) 
    { 
pageContext.forward("display.jsp"); 
    } 
else 
    { 
out.println("Wrong password"); 
pageContext.include("login.jsp"); 
    } 
pageContext.include("login.jsp"); 
} 
%> 

</body> 
</html> 

Visualizzazione corretta.codice JSP:

<%@ page import="java.io.*,java.util.*" language="java" contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%> 
<%@ page import="user.LoginUser"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> 
<jsp:useBean id="user" class="user.LoginUser" scope="session" ></jsp:useBean> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Display</title> 
</head> 
<body> 
<% String title="Welcome : Successful Login"; 
out.println(title);%> 
<h3> <center> Your Name : Reneesh </center> </h3><br> 
User name : <%=user.getUsername()%><br> 
<%session.setMaxInactiveInterval(20); 
%> 
</body> 
</html> 

mio LoginUser.java di file Java corretto codice è il seguente:

package user; 

public class LoginUser { 
String username; 
String password; 

public void setUsername(String value) 
    { 
     username=value; 
    } 

public void setPassword(String value) 
    { 
    password=value; 
    } 

public String getUsername() 
    { 
    return username; 
    } 

public String getPassword() 
    { 
    return password; 
    } 

} 

Gentilmente provate con questo codice, ho fatto alcune modifiche nel codice assegnando String valuue per la password. Ho anche usato Eclipse juno IDE e Apache Tom Cat v 7.0 per l'esecuzione di questo progetto web dinamico. Spero che proverai e fammi sapere se c'è un ulteriore errore.

+2

Annota le modifiche apportate o pubblica solo la parte della risposta che hai modificato. Da questo è difficile da fare. – 4dgaurav

+2

Gaurav ho capito. Scusa se sono nuovo nello stack overflow ecco perché è successo. Mi occuperò di questo dal prossimo post in poi. Grazie per avermi fatto capire – Reneesh

Problemi correlati