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

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

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

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

Java

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1577閲覧

jspでセッションスコープの値が取得できません。

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

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

Java

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/07/05 10:39

やりたいこと
ログインID,パスワードが違う場合
サーブレットからjspにセッションの値を渡す。
その後、リダイレクトしてきたhtmlで、エラーを表示

今の状態
エラーが表示されません。
javascriptで書いたほかのエラーは、表示されます。

よろしくお願いします。

javascript

1<script type="text/javascript"> 2 3 function formcheck(){ 4 //必須チェック 5 if(document.Form1.userId.value == "" || document.Form1.pass.value == ""){ 6 // 7 if(session == null){ 8 Human h = (Human) session.getAttribute("human"); 9 document.getElementById('input_error').innerHTML = "h.getName()"; 10 } 11 document.getElementById('input_error').innerHTML = "ログインIDまたはパスワードは必須です。"; 12 return false; 13 } 14 return true; //送信を実行 15 } 16</script> 17コード

html

1 <html> 2 <body> 3 <h1>業務報告システム</h1> 4 <span id="input_error"></span> 5 <%@ page import="servlet.Human" %> 6 <form name = "Form1" action="/gyomuhokoku/LoginServlet" method="post" onsubmit="return formcheck()"><br> 7 8 ユーザーID:<input type="text" name="userId" id="notice-input-1"> <br> 9 パスワード:<input type="text" name="pass" id="notice-input-2"> <br> 10 11 <button type=submit>ログイン</button> 12 </form> 13</body> 14</html>

java

1package servlet; 2 3import java.io.IOException; 4 5import javax.servlet.RequestDispatcher; 6import javax.servlet.ServletException; 7import javax.servlet.annotation.WebServlet; 8import javax.servlet.http.HttpServlet; 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11import javax.servlet.http.HttpSession; 12 13import model.AccountLogic; 14import model.Login; 15 16@WebServlet("/LoginServlet") 17public class LoginServlet extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 protected void doGet(HttpServletRequest request, 21 HttpServletResponse response) 22 throws ServletException, IOException { 23 24 //フォワード 25 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Login.jsp"); 26 dispatcher.forward(request, response); 27 } 28 29 protected void doPost(HttpServletRequest request, 30 HttpServletResponse response) 31 throws ServletException, IOException { 32 33 Human human = new Human(); 34 human.setName("ログインIDまたはパスワードが違います。"); 35 36 37 38 //リクエストパラメータの取得 39 request.setCharacterEncoding("UTF-8"); 40 String userId = request.getParameter("userId"); 41 String pass = request.getParameter("pass"); 42 43 44 //ログイン処理の実行 45 Login rs = new Login(); 46 rs.setUserId(userId); 47 rs.setPass(pass); 48 AccountLogic bo = new AccountLogic(); 49 boolean result = bo.execute(rs); 50 51 //ログインの成否によって処理を分岐 52 if (result) { //ログイン成功時 53 54 //セッションスコープにユーザーIDを保存 55 HttpSession session = request.getSession(); 56 session.setAttribute("userId", userId); 57 58 //フォワード 59 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/ListScreen.jsp"); 60 dispatcher.forward(request, response); 61 } else { 62 //ログイン失敗時 63 //リダイレクト 64 65 HttpSession session = request.getSession(); 66 session.setAttribute("human",human); 67 response.sendRedirect("/gyomuhokoku/LoginServlet"); 68 } 69 } 70 }

java

1//Todo Humanは、とりあえず動かすための暫定の名前です。後で変更します。 2 3package servlet; 4import java.io.Serializable; 5 6 public class Human implements Serializable{ 7 private String name; 8 9 public Human() {} 10 public Human(String name) { 11 this.name = name; 12 } 13 public String getName() {return name;} 14 public void setName(String name) {this.name = name;} 15 16} 17

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/07/05 12:57

名前が類似しているから情報共有が出きると思わないでください。
退会済みユーザー

退会済みユーザー

2018/07/05 13:12

では、どうしたらいいのでしょうか
退会済みユーザー

退会済みユーザー

2018/07/05 13:14

これ以上進めなさそうで...
guest

回答1

0

jspでセッション情報を扱う際、javascriptで直接扱うことは出来ません。
<%〜%>で記述する、スクリプトレットを利用する必要があります。

jspでのセッションの扱い方は、Googleで検索すればいくらでも出て来ると思いますので、確認してみてください。

投稿2018/07/05 15:14

takyafumin

総合スコア2335

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問