今回は、「Webシステムのログイン(2)―リダイレクトとフォワードの違い―」です。
 ユーザーがログインしたときに、メニュー画面へリダイレクトしてみましょう。
 今まではJSPを呼び出すときにフォワードを使ってきましたが、これとは別のリダイレクトを使ってメニュー画面へ移動します。
■動画はこちら
■動画で使用しているソースコード
 サーブレットフィルター(LoginFilter.java)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package yurufuwa.prog.sample; import java.io.IOException; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpFilter; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpSession; public class LoginFilter extends HttpFilter {     @Override     protected void doFilter(             HttpServletRequest request, HttpServletResponse response,              FilterChain chain) throws IOException, ServletException {         //セッションからユーザIDを取り出す         HttpSession session = request.getSession(false);         String userId = null;         if(session != null) {             userId = (String)session.getAttribute("USER_ID");         }         if (userId != null) {             //ログイン済みなので、サーブレットを呼び出す             chain.doFilter(request, response);         } else {             //未ログインなので、ログイン画面へリダイレクト             response.sendRedirect("./login");         }     } } | 
web.xml
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" id="WebApp_ID" version="5.0">   <display-name>testWeb</display-name>   <servlet>     <servlet-name>Login</servlet-name>     <servlet-class>yurufuwa.prog.sample.LoginServlet</servlet-class>   </servlet>   <servlet>     <servlet-name>Menu</servlet-name>     <servlet-class>yurufuwa.prog.sample.MenuServlet</servlet-class>   </servlet>   <servlet>     <servlet-name>Logout</servlet-name>     <servlet-class>yurufuwa.prog.sample.LogoutServlet</servlet-class>   </servlet>   <servlet>     <servlet-name>Todofuken</servlet-name>     <servlet-class>yurufuwa.prog.sample.TodofukenServlet</servlet-class>   </servlet>   <servlet-mapping>     <servlet-name>Login</servlet-name>     <url-pattern>/login</url-pattern>   </servlet-mapping>   <servlet-mapping>     <servlet-name>Menu</servlet-name>     <url-pattern>/menu</url-pattern>   </servlet-mapping>   <servlet-mapping>     <servlet-name>Logout</servlet-name>     <url-pattern>/logout</url-pattern>   </servlet-mapping>   <servlet-mapping>     <servlet-name>Todofuken</servlet-name>     <url-pattern>/todofuken</url-pattern>   </servlet-mapping>   <filter>     <filter-name>LoginFilter</filter-name>     <filter-class>yurufuwa.prog.sample.LoginFilter</filter-class>   </filter>   <filter-mapping>     <filter-name>LoginFilter</filter-name>     <url-pattern>/menu</url-pattern>   </filter-mapping>   <filter-mapping>     <filter-name>LoginFilter</filter-name>     <url-pattern>/todofuken</url-pattern>   </filter-mapping> </web-app> | 














