なぜ、jspが表示されないのかわかりません。
nullpointexceptionになります。
org.apache.jasper.JasperException: An exception occurred processing [/WEB-INF/Login.jsp]at line [12]
どなたかわかる方、教えていただけないでしょうか。→GETしたときは、表示されました。
しかし、POSTしてきたときにエラーになります。
org.apache.jasper.JasperException: An exception occurred processing [WEB-INF/Login.jsp] at line [12]と表示されます。→コメント頂いて、エラーにはなりません。
でも、肝心のエラーが表示されません.......なぜなんでしょうか.....
java
1LoginServlet.java 2 3package servlet; 4 5import java.io.IOException; 6import java.util.ArrayList; 7 8import javax.servlet.RequestDispatcher; 9import javax.servlet.ServletException; 10import javax.servlet.annotation.WebServlet; 11import javax.servlet.http.HttpServlet; 12import javax.servlet.http.HttpServletRequest; 13import javax.servlet.http.HttpServletResponse; 14import javax.servlet.http.HttpSession; 15 16import model.AccountLogic; 17import model.Login; 18 19@WebServlet("/LoginServlet") 20public class LoginServlet extends HttpServlet { 21 private static final long serialVersionUID = 1L; 22 23 protected void doGet(HttpServletRequest request, 24 HttpServletResponse response) 25 throws ServletException, IOException { 26 27 28 ArrayList<String> error = new ArrayList<>(); 29 request.setAttribute("error", error); 30 error.add(""); 31 32 33 //フォワード 34 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Login.jsp"); 35 dispatcher.forward(request, response); 36 } 37 38 protected void doPost(HttpServletRequest request, 39 HttpServletResponse response) 40 throws ServletException, IOException { 41 42 43 //リクエストパラメータの取得 44 request.setCharacterEncoding("UTF-8"); 45 String userId = request.getParameter("userId"); 46 String pass = request.getParameter("pass"); 47 48 //配列を用意 49 ArrayList<String> error = new ArrayList<>(); 50 51 if(userId == null) { 52 error.add("ログインIDを入力してください。"); 53 request.setAttribute("error", error); 54 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Login.jsp"); 55 dispatcher.forward(request, response); 56 }else if(pass == null){ 57 error.add("パスワードを入力してください。"); 58 request.setAttribute("error", error); 59 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Login.jsp"); 60 dispatcher.forward(request, response); 61 } 62 63 //ログイン処理の実行 64 Login rs = new Login(); 65 rs.setUserId(userId); 66 rs.setPass(pass); 67 AccountLogic bo = new AccountLogic(); 68 boolean result = bo.execute(rs); 69 70 //ログインの成否によって処理を分岐 71 72 73 74 if (result) { //ログイン成功時 75 76 //セッションスコープにユーザーIDを保存 77 HttpSession session = request.getSession(); 78 session.setAttribute("userId", userId); 79 80 //フォワード 81 RequestDispatcher dispatcher = request.getRequestDispatcher("/ListScreen"); 82 dispatcher.forward(request, response); 83 } else { 84 //ログイン失敗時 85 // 86 87 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Login.jsp"); 88 dispatcher.forward(request, response); 89 90 } 91 } 92 } 93
java
1Login.jsp 2 3<!DOCTYPE HTML> 4<html lang="ja"> 5<head> 6<%@ page language="java" contentType="text/html; charset=Windows-31J" 7 pageEncoding="Windows-31J"%> 8<%@ page import="java.util.ArrayList"%> 9</head> 10 11 12<body> 13 <form action="/gyomuhokoku/LoginServlet" method="post"> 14 <h1>ログイン</h1> 15 <% 16 ArrayList<String> error = (ArrayList<String>) request.getAttribute("error"); 17 if (error != null) { 18 for (int i = 0; i < error.size(); i++) { 19 %> 20 <%=error.get(i)%> 21 <% 22 } 23 %> 24 <% 25 } 26 %> 27 ユーザーID:<input type="text" name="userId" id="notice-input-1"> <br> 28 パスワード:<input type="text" name="pass" id="notice-input-2"> <br> 29 <button type=submit>ログイン</button> 30 </form> 31</body> 32</html>
回答1件
あなたの回答
tips
プレビュー