6

我创建了一个简单的登录页面,用户将在其中提供用户名和密码,然后将其存储在会话中。单击提交按钮后,它将显示欢迎用户或名称。如果用户等待几秒钟,则会话将过期并自动返回登录页面。

这是我的登录页面

<%@  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 时收到此错误

我已经关注了这个链接

请帮我找出我的错误。

更新

我可以成功运行我的登录页面。 我现在收到此错误,但无法弄清楚错误在哪里。 错误的最后一部分是这个

如何解决这些错误。帮助

4

2 回答 2

4

因为您尝试直接从浏览器访问 login.jsp,所以您必须将其移出 WEB-INF 目录 - WEB-INF 中的文件不可公开访问。如果将 login.jsp 上移一个目录并http://localhost:8088/abhirup/login.jsp在浏览器中输入,它应该会拉出页面。然而,将 jsp 页面放在 WEB-INF/jsp 或类似的东西下并使用 servlet 拦截和处理请求,然后让 servlet 转发到适当的 jsp 页面是一种相当普遍的做法。

display.jsp 的第 1 行第 46 列出现语法错误,因为在声明page之前有单词。language改变这个:

<%@ 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"%>
于 2013-08-13T16:53:38.003 回答
1

我也尝试了相同的代码,但在两个 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;
    }

 }

请尝试使用此代码,我通过为密码分配字符串值对代码进行了一些更改。我还使用 Eclipse juno IDE 和 Apache Tom Cat v 7.0 来运行这个动态 web 项目。希望你会尝试让我知道是否有进一步的错误。

于 2014-06-15T10:20:37.117 回答