嗨我用servlet做了簡單的Web應用程序,根據可用會話提供登錄和歡迎頁面。我已經連接了下面的代碼,重定向到servlet中的根URL
每當用戶鍵入URL http://localhost:8888/
,他必須要到dashboard
的servlet(如web.xml
提)
在dashboard servlet
,其中會話檢查
如果會話是可用的,那麼我將成爲welcome.html
頁面, 否則我重定向到login servlet
在login servlet
,
GET
方法, 如果用戶有我重定向到dashboard servlet
否則會議上,我將轉發welcome.html
頁面
用戶進入後的信息,將發佈信息所述login servlet
(即,POST)
POST
方法, 我會得到來自請求的用戶名和密碼,我將檢查值是admin
和password
如果這是真的創建一個會話,將用戶重定向到dashboard servlet
否則我將用戶重定向到login servlet
(GET方法)
Web應用程序應該需要有隻有這2個網址,
(1)http://localhost:8888/
(2)http://localhost:8888/login
用戶應該不知道我服他們網頁的類型(HTML或JSP),但我要爲只有HTML頁面(這是我的要求)
當我啓動應用程序引擎,起初請求發送到儀表板,然後它會被重定向到login servlet
但後來它的製作迴路儀表盤再次
我用System.out.println()
跟蹤控制我的輸出是
The admin console is running at http://localhost:8888/_ah/admin
Jul 25, 2017 11:12:55 AM com.google.appengine.tools.development.DevAppServerImpl doStart
INFO: Dev App Server is now running
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
login servlet get method
request no session
-->dashboard servlet
get method
no session,
問題:
如何才能解決這個問題呢?
如果我更改了web.xml
URL模式爲<url-pattern>/index</url-pattern>
和徘徊無論重定向到/
我改/index
爲dashboard servlet
它工作正常,但我怎麼能使用的「/」的servlet的servlet的
我已附加下面的源代碼,
儀表盤的servlet
包的servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@SuppressWarnings("serial")
public class DashboardServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("-->dashboard servlet");
System.out.println("get method");
HttpSession session = req.getSession(false);
if (session != null) {
System.out.println("session is available");
req.getRequestDispatcher("/WEB-INF/welcome.html").forward(req, resp);
} else {
System.out.println("no session,");
resp.sendRedirect("/login");
}
}
}
登錄的Servlet
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@SuppressWarnings("serial")
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("-->>>login servlet post method");
String name = req.getParameter("username");
String password = req.getParameter("password");
if (name.equals("admin") && password.equals("password")) {
HttpSession session = req.getSession();
session.setAttribute("sessionUserName", name);
resp.sendRedirect("/");
} else {
resp.sendRedirect("/login");
}
}
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("login servlet get method");
HttpSession session = req.getSession(false);
if (session != null) {
System.out.println("request with session");
resp.sendRedirect("/");
} else {
System.out.println("request no session");
req.getRequestDispatcher("/WEB-INF/login.html").forward(req, resp);
}
}
}
的web.xml
<web-app>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Dashboard</servlet-name>
<servlet-class>servlet.DashboardServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Dashboard</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
的AppEngine-web.xml中
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application></application>
<version>1</version>
<threadsafe>true</threadsafe>
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties" />
</system-properties>
<sessions-enabled>true</sessions-enabled>
</appengine-web-app>
的login.html
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<form action="/login" method="post">
User name :<input type='text' name='username'>Password :<input
type='password' name='password'><input type='submit'
value='Submit'>
</form>
</body>
</html>
welcome.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>welcome here
</body>
</html>
謝謝
是,即使我試圖與會話屬性中,如果條件('如果(會話! = null && session.getAttribute(「sessionUserName」)。equals(「admin」))')它給出了相同的結果@yılmaz – Prakash
@Prakash答案編輯。 –
@Prakash如果問題解決了,請將其標記爲已解決。 –