Java Servlet Filter ~画面遷移しない~

イントロダクション

Java ServletでFilterの実装を祖小名いました。

    <filter>
        <filter-name>docoFilter</filter-name>
        <filter-class>filter.DocoFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>docoFilter</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>
@Override
public void init(FilterConfig filterConfig) throws ServletException {
    log = Logger.getLogger("logFilter");

    log.info("*** フィルター処理開始");
}

@Override
public void destroy() {
    log.info("*** フィルター処理終了");
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    log.info("** Before doFilter ");
    log.info("ContentType: " + request.getContentType());
    log.info("** Url: " + req.getRequestURI());

    long start = System.currentTimeMillis();
    System.out.println("Milliseconds in: " + start);
    chain.doFilter(request, response);
    long end = System.currentTimeMillis();
    log.info("** After doFilter / " + (end - start));
}

初回のリクエストは問題なく、初期画面が表示されるが、次のログイン後の画面が表示されない。。。

下のような実装をしました。

    @Override
    protected void doGet(HttpServletRequest request
            , HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String name = request.getParameter("name");
        String pass = request.getParameter("pass");

        // ユーザークラス
        User user = new User(name, pass);
        // ログイン処理
        LoginLogic logic = new LoginLogic();
        boolean isLogin = logic.execute(user);

        if (isLogin) {
            HttpSession sess = request.getSession();
            sess.setAttribute("loginUser", user);
        }
        System.out.println("LoginServlet");
        // フォワード
        RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/loginResult.jsp");
        dispatcher.forward(request, response);
    }
    }
    @Override
    protected void doPost(HttpServletRequest request
            , HttpServletResponse response) throws ServletException, IOException {

    }

原因

ズバリ、doGetとdoPostのメソッドを間違えた。。。

確認した内容

  1. doFilterを実装していたので、Filterにエラーがあると思ったが、問題なく。。。
  2. 画面の遷移先URLが正しいか確認
  3. 表示先のJSPにエラーがないか確認

結局のところは、凡ミスでした。。。。

でわでわ。。。

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す