質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

0回答

979閲覧

jspのログイン画面から誤った入力をした時にエラーメッセージを表示させたい

anopurihana

総合スコア34

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2018/05/27 02:47

編集2018/05/27 02:48

こんにちは。
現在、模擬プロジェクトとしてちょっとしたノベルゲームのアプリを制作中です。
その中で、最初に新規登録/ログイン画面があるのですが、ログイン画面のみエラーメッセージを出力できません。以下は①新規登録/ログインの入力チェックと、②新規登録/ログイン専用のサーブレット、③新規登録jsp、④ログインjspです。

java

1 2//App_novelGame.java 3//省略 4 5//新規登録のバリューチェック 6 public boolean registerValueCheck() { 7 8 9 errorMessages = new ArrayList<String>(); 10 11 if (username == null || username.isEmpty()) { 12 errorMessages.add("ユーザー名が空です"); 13 } else if (username.length() > 20) { 14 errorMessages.add("入力したユーザー名が長すぎます"); 15 } 16 17 return (errorMessages.size() == 0); 18 } 19 20 //ログインのバリューチェック 21 public boolean loginValueCheck() { 22 23 errorMessages = new ArrayList<String>(); 24 25 if (userid < 0 && (username == null || username.isEmpty()) ) { 26 errorMessages.add("入力してください"); 27 } 28 29 if (username == null || username.isEmpty()) { 30 errorMessages.add("ユーザー名が空です"); 31 } else if (username.length() > 20) { 32 errorMessages.add("入力したユーザー名が長すぎます"); 33 } 34 return (errorMessages.size() == 0); 35 36 } 37 38 39//エラーメッセージのget,set定義 40 private List<String> errorMessages; 41 42 public List<String> getErrorMessages() { 43 return errorMessages; 44 } 45 46 public void setErrorMessages(List<String> errorMessages) { 47 this.errorMessages = errorMessages; 48 } 49 50

java

1 2//RegisterServlet.java 3//LoginServlet.javaは同様の記述の為、省略 4 5boolean checkResult = dto.registerValueCheck(); 6 7 if (!checkResult) { 8 9 request.setAttribute("errorMessages", dto.getErrorMessages()); 10 request.setAttribute("dto", dto); 11 12 RequestDispatcher rd = request.getRequestDispatcher("/jsp/register.jsp"); 13 rd.forward(request, response); 14 15 return; 16 17 } else { 18 19 //新規登録の処理を発動 20 21 return; 22 23 } 24 25

html

1 2<%-- login.jsp --%> 3 4<div class="login"> 5 <form action="/App_novelGame/LoginServlet" method="post"> 6 7 <h1>ログイン画面</h1> 8 9 <div> 10 ユーザ名:<input type="text" name="username"></input> 11 </div> 12 <br /> 13 <div> 14 ユーザID:<input type="text" name="userid"></input> 15 </div> 16 <br /> <br /> <input type="submit" value="ログイン"/> 17 </form> 18 19 <br /> 20 21 22 23 <%--エラーメッセージの検出 --%> 24 <c:if test="${errorMessages.size() > 0 }"> 25 <br /> 26 <div class="alert alert-danger" role="alert"> 27 <c:forEach items="${errorMessages}" var="errorMessage"> 28 ※${errorMessage }<br /> 29 </c:forEach> 30 </div> 31 </c:if> 32 33 34 </div> 35 36 37

html

1 2<%-- register.jsp --%> 3 4<div class="register"> 5 <form action="/App_novelGame/RegisterServlet" method="post"> 6 7 <h1>ユーザ新規登録画面</h1> 8 9 <div> 10 ユーザ名:<input type="text" name="username"></input> 11 </div> 12 <p>※20字以内で設定してください</p> 13 <br /> <br /> <input type="submit" value="登録" /> 14 </form> 15 </div> 16 17 <br /> 18 <%--エラーメッセージの検出 --%> 19 20 <c:if test="${errorMessages.size() > 0 }"> 21 <br /> 22 <div class="alert alert-danger" role="alert"> 23 <c:forEach items="${errorMessages}" var="errorMessage"> 24 ※${errorMessage }<br /> 25 </c:forEach> 26 </div> 27 </c:if> 28 29

できること

新規登録バリューチェックで名前入力欄が空、20文字を超えて入力されたときにエラーメッセージを出力

できないこと

ログインバリューチェックで以下の時にエラーメッセージを出力
・ログインID、名前が両方空、もしくは片方でも空でpostされた場合
・名前が20文字を超えて入力された場合

ログイン画面で入力欄を空でpostした場合は、「HTTPステータス 500-For input string:""」とエラーが出ます。間違った情報を入力した場合は「HTTPステータス 500 - org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/login.jsp at line 39」と出ました。

実現したいこと

ログインチェックのエラー改善、完成。

足りない情報がございましたら、お申しつけください。
このエラーについてアドバイスをいただける方、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問