2013-08-13 62 views
6

Tôi đã tạo một trang đăng nhập đơn giản, trong đó người dùng sẽ cung cấp tên người dùng và mật khẩu, sau đó nó sẽ được lưu trữ trong phiên. Sau khi nhấp vào nút gửi, nó sẽ hiển thị người dùng chào mừng hoặc tên. Và nếu người dùng chờ vài giây thì phiên sẽ hết hạn và nó sẽ tự động quay trở lại trang đăng nhập.Tạo một trang Đăng nhập đơn giản bằng cách sử dụng jsp và phiên

Đây là trang đăng nhập của tôi

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

bây giờ trong check.jsp tôi đang làm một phần kiểm tra của tôi cho tên người dùng và mật khẩu

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

và sau đó cuối cùng tôi đang hiển thị nó trong 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> 

và đây cũng là tệp LoginUser.java của tôi

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

} 

Tôi đang sử dụng IDE Eclipse và máy chủ Tomcat. Eclipse đã không hiển thị một lỗi duy nhất trong bất kỳ trang nào nhưng vẫn còn khi tôi chạy trang login.jsp của mình.

I am getting this error on running login.jsp

tôi đã theo này link

hãy giúp tôi để tìm lỗi của tôi.

Cập nhật

tôi thành công có thể chạy trang đăng nhập của tôi. I am getting this error now, but could not figure out where is the error. last part of the error is this

cách khắc phục các lỗi này. giúp đỡ

Trả lời

4

Vì bạn đang cố gắng truy cập login.jsp trực tiếp từ trình duyệt, bạn phải di chuyển nó ra khỏi thư mục WEB-INF - các tệp trong WEB-INF không thể truy cập công khai. Nếu bạn di chuyển login.jsp lên một thư mục và nhập http://localhost:8088/abhirup/login.jsp trong trình duyệt của bạn, nó sẽ kéo trang lên. Tuy nhiên, nó là một thực tế khá phổ biến để đặt các trang jsp theo WEB-INF/jsp hoặc một cái gì đó tương tự và sử dụng một servlet để chặn và xử lý các yêu cầu và sau đó có servlet chuyển tiếp đến trang jsp thích hợp.

Bạn có lỗi cú pháp trên dòng 1, cột 46 của display.jsp vì bạn có từ page trước kê khai language của mình. Thay đổi này:

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

này:

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

Có hoạt động. Bạn có thể giải thích tại sao các trang jsp được lưu giữ bên trong thư mục WEB-INF theo mặc định? – insanity

+0

Mọi người thường đặt các tệp jsp trong WEB-INF cụ thể để chúng không thể truy cập công khai. Servlets được hiển thị thông qua một URL công cộng được định nghĩa trong web.xml, do đó yêu cầu đi đến một servlet, servelet xử lý nó và sau đó nó chuyển tiếp tới yêu cầu tới trang jsp bằng cách sử dụng một cái gì đó như 'request.getRequestDispatcher (" đường dẫn/đến/của tôi /page").forward(yquest, response); '. – clav

+0

cảm ơn bạn @clav – insanity

1

Tôi cũng đã cố gắng cùng mã và tôi tìm thấy một số lỗi trong hai tập tin JSP

login.jsp My sửa code được như đưa ra dưới đây:

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

Corrected đang check.jsp là như sau:

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

Hiển thị đúng.đang 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> 

My tập tin Java LoginUser.java chỉnh mã như sau:

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

} 

Vui lòng thử với mã này, tôi đã thực hiện một số thay đổi trong mã bằng cách gán Chuỗi valuue cho mật khẩu. Tôi cũng đã sử dụng Eclipse juno IDE và Apache Tom Cat v 7.0 để chạy dự án web động này. Hy vọng bạn sẽ cố gắng và cho tôi biết nếu có thêm lỗi.

+2

Vui lòng đánh dấu các thay đổi bạn đã thực hiện hoặc chỉ đăng một phần câu trả lời mà bạn đã thay đổi. Bởi điều này khó khăn của nó để makeout. – 4dgaurav

+2

Gaurav Tôi hiểu. Xin lỗi tôi mới vào ngăn xếp tràn mà tại sao nó xảy ra. Từ bài tiếp theo trở đi, tôi sẽ chăm sóc điều đó. Cảm ơn vì đã làm cho tôi rõ ràng. – Reneesh

Các vấn đề liên quan