前提・実現したいこと
サーブレットを利用してログイン機能を作る以下のような課題に取り組んでいます。
・JSP1でパスワードを入力する。
・サーブレットで受取ったパスワードが「"ABC","DEF","GHI","JKL"」のいずれかならば、ログイン成功とする。
・ログイン成功ならば、JSPokに飛び「ログイン成功」と表示する。
・ログイン失敗ならば、JSPngに飛び「ログイン失敗」と表示する。
発生している問題・エラーメッセージ
正しいパスワードを入力しても違ったパスワードを入力しても
すべて「ログイン失敗」と表示されてしまいます。
該当のソースコード
package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Mylogin") public class Mylogin extends HttpServlet { private static final long serialVersionUID = 1L; public Mylogin() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { getServletContext().getRequestDispatcher("/JSP1.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String[] array = { "ABC", "DEF", "GHI", "JKL" }; String match = request.getParameter("password"); for (int i = 0; i < array.length; i++) { if (array.equals(match)) { match = "一致した"; break; } } if (match.equals("一致した")) { getServletContext().getRequestDispatcher("/JSPok.jsp").forward(request, response); // ログイン成功の処理 } else { getServletContext().getRequestDispatcher("/JSPng.jsp").forward(request, response); // ログイン失敗の処理 } } } ```【JSP1.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); %> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <% out.println("ログイン失敗"); %> </body> </html> 【JSPok.jsp】は表示内容が違うだけなので割愛させていただきます。
試したこと
おそらくサーブレット内の2つのif文のうちどちらか、あるいは両方の文字列の比較が
うまくいっていないものと推測しています。試行錯誤してみましたがどうにもなりませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー