web-dev-qa-db-ja.com

jspとセッションを使用して簡単なログインページを作成する

ユーザーがユーザー名とパスワードを入力する単純なログインページを作成し、それをセッションに保存します。送信ボタンをクリックすると、ウェルカムユーザーまたは名前が表示されます。また、ユーザーが数秒間待機すると、セッションが期限切れになり、自動的にログインページに戻ります。

これが私のログインページです

<%@  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>

今check.jspで私はユーザー名とパスワードのチェック部分をやっています

<%@  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>

そして最後に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>

また、これは私の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;}

}

私はEclipseを使用していますIDEおよびTomcatサーバー。Eclipseは、どのページでも単一のエラーを表示していませんが、login.jspページを実行すると表示されます。

login.jspの実行時にこのエラーが発生します

私はこれに従いました リンク

私のエラーを見つけるのを手伝ってください。

更新

ログインページを正常に実行できます。 現在、このエラーが発生していますが、エラーの場所を特定できませんでした。エラーの最後の部分はこれです

これらのエラーを修正する方法。助けて

6
insanity

ブラウザからlogin.jspに直接アクセスしようとしているため、WEB-INFディレクトリの外に移動する必要があります-WEB-INF内のファイルにはパブリックにアクセスできません。 login.jspを1つのディレクトリに移動し、ブラウザにhttp://localhost:8088/abhirup/login.jspと入力すると、ページが表示されます。ただし、jspページをWEB-INF/jspなどに配置し、サーブレットを使用してリクエストをインターセプトおよび処理してから、サーブレットを適切なjspページに転送することは、かなり一般的な方法です。

page宣言の前にWord languageがあるため、display.jspの1行目の46列に構文エラーがあります。これを変える:

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

これに:

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

私も同じコードを試しましたが、2つのJSPファイルにエラーが見つかりました

私のlogin.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>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>

修正されたcheck.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>
<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>

修正されたdisplay.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>

私のJavaファイルLoginUser.Javaの修正済みコードは次のとおりです。

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;
    }

 }

親切にこのコードを試して、パスワードに文字列値を割り当てることにより、コードにいくつかの変更を加えました。また、この動的Webプロジェクトを実行するためにEclipse juno IDEおよびApache Tom Cat v 7.0を使用しました。さらにエラーが発生する場合は、ぜひお知らせください。

1
Reneesh