すっきりわかるサーブレット&JSPを参考にログイン画面を作ったのですが、値がnullですとエラーが出てしまいます。どうすればエラーを解消できるでしょう?
環境は、windows7でeclipseを使っています。
*画面設計
Login.java→User→LoginLogic→Login.jsp
*Login.java
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pass = request.getParameter("pass");
User user = new User(id, pass);
LoginLogic loginLogic = new LoginLogic();
boolean isLogin = loginLogic.execute(user);
if(isLogin){
HttpSession session = request.getSession();
session.setAttribute("loginLogic", user);
}
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/Login.jsp");
dispatcher.forward(request, response);
*User
public String id;
public String pass;
public User(){}
public User(String id, String pass){
this.id = id;
this.pass = pass;
}
public String getId() {return id;}
public String getPass() {return pass;}
*LoginLogic
public boolean execute(User user){
if(user.getPass().equals("1234")){return true;}
return false;
*Login.jsp
<html>
<head>
<meta charset="UTF-8">
<title>ログイン画面</title>
</head>
<body>
<h1>名刺管理</h1>
<form action = "/example/Businessservlet"
method="get">
ログインID:<input type="text" name="id"><br>
<br>
パスワード:<input type="password" name="pass">
<br><br>
<input type="submit" value="ログイン"><br><br>
</form>
</body>
</html>
お願い致します。
No.1ベストアンサー
- 回答日時:
これだけでは情報が少なすぎます。
せめてどこでエラーが出ているか書かないと誰も答えられません。
少しだけ見ましたが、
boolean isLogin = loginLogic.execute(user);
おそらくここから呼び出されている
executeの処理で起きているのでしょう。
if(user.getPass().equals("1234")){return true;}
ここでUser#passがnullのままだと起きますね。
サーブレットへリクエスト投げている際に
http://xxxx.xx/xxx.jsp?pass=abcd&id=user
のようなリクエストがちゃんと投げられてますか?
回答ありがとうございます。
エラー部分は
java.lang.NullPointerException
model.LoginLogic.execute(LoginLogic.java:5)
servlet.Login.doGet(Login.java:29)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Login.javaの
request.setCharacterEncoding("UTF-8");
にブレークポイントを置いて、F6を押すと
String id = request.getParameter("id");
String pass = request.getParameter("pass");
変数ビューに(id)と(pass)はnullですと表示されます。
request.setCharacterEncoding("UTF-8");←ブレークポイント
String id = request.getParameter("id");←null
String pass = request.getParameter("pass");←null
以上となります。情報が足らず申し訳ございませんでした。
>ここでUser#passがnullのままだと起きますね。
おっしゃる通りで、userとidがnullの状態です。
>http://xxxx.xx/xxx.jsp?pass=abcd&id=user
のようなリクエストがちゃんと投げられてますか?
確認致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクトの中のプロパティ...
-
1ページに10件ずつ表示したい
-
hiddenの値が期待した値で取得...
-
No such validation エラー
-
JSPでImportエラーになります
-
PropertyNotFoundException解決...
-
JSPにて、変数を利用してフォン...
-
WebWork(struts2)でのパラメー...
-
スレッドセーフ?スレッドアン...
-
【Struts】bean:writeタグのpro...
-
javaの環境変数の%CATALINA_HOM...
-
StrutsでJSPからListを受け取り...
-
StrutsのforEachについて
-
IF関数でEmpty値を設定する方法。
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
System.out.printlnの意味がよ...
-
1~100までの数字を表示し、か...
-
JSPやサーブレットでSystem.out...
-
VBAで配列の計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
オブジェクトの中のプロパティ...
-
Java Struts ~に対するゲッタ...
-
hiddenの値が期待した値で取得...
-
StrutsでJSPからListを受け取り...
-
JSPでImportエラーになります
-
JSPからServletに、テーブルに...
-
<s:iterator>の値をリストで取...
-
requestの値が削除されません…
-
PropertyNotFoundException解決...
-
入力チェックとエラーメッセー...
-
JSPでDBからデータ読み込みブラ...
-
JSPにて、変数を利用してフォン...
-
JSFタグ<h:dataTable>でヘッダ...
-
【struts】 ActionFormで別のAc...
-
コンボボックスにつきまして
-
java strutsでの一覧表の表示方...
-
全取得したデータをjspで順番に...
-
iterateで受け取った値を処理に...
-
JSP DB 表示
-
サーブレットjspで勤怠スケジュ...
おすすめ情報
(補足)
画面設計が間違っていた結果、idとpassをnullにしてしまいました。ご指摘ありがとうございました!