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

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

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

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

Java

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

servlet

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

952閲覧

サイトを踏んだ回数を表示したいです

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

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

Java

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

servlet

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/06/01 09:37

編集2021/06/01 10:04

登録画面を踏んだ回数を表示したいのですがnullになってしまいます。

何回か登録画面を踏んでも「登録画面を踏んだ回数null」と出てしまいます。
説明が足りないろころがありましたら教えてください!

ホーム

JSP

1<?xml version="1.0" encoding="UTF-8" ?> 2<%@ page language="java" contentType="text/html; charset=UTF-8" 3 pageEncoding="UTF-8"%> 4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 5<html xmlns="http://www.w3.org/1999/xhtml"> 6<head> 7<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 8<title>Home</title> 9</head> 10<body> 11 <h1>ようこそ</h1> 12 <hr/> 13 <p><a href="login.jsp">ログイン</a></p> 14 <p><a href="signup.jsp">登録</a></p> 15 登録画面を踏んだ回数<%=request.getAttribute("data.count") %> 16</body> 17</html>

登録JSP

<?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Home</title> </head> <body> <h1>ようこそ</h1> <hr/> <p><a href="login.jsp">ログイン</a></p> <p><a href="signup.jsp">登録</a></p> 登録画面を踏んだ回数<%=request.getAttribute("data.count") %> </body> </html>

登録Servlet

Servlet

1 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 // TODO Auto-generated method stub 3 request.setCharacterEncoding("UTF-8"); 4 HttpSession session = request.getSession(true); 5 6 String message; 7 message = "ご登録ありがとうございました"; 8 request.setAttribute("message", message); 9 10 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/end.jsp"); 11 dispatcher.forward(request, response); 12 13 Integer count = (Integer) request.getAttribute("data.count"); 14 if(count == null) { 15 count = 0; 16 } 17 request.setAttribute("data.count", count); 18 19 } 20 21 /** 22 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 23 */ 24 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 25 // TODO Auto-generated method stub 26 request.setCharacterEncoding("UTF-8"); 27 String name = request.getParameter("name"); 28 String pass = request.getParameter("pass"); 29 String message; 30 31 message = "ご登録ありがとうございました"; 32 request.setAttribute("message", message); 33 34 data.nameData.add(name); 35 data.passData.add(pass); 36 37 request.getAttribute("data.count"); 38 data.count += 1; 39 request.setAttribute("data.count", data.count); 40 41 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/end.jsp"); 42 dispatcher.forward(request, response); 43 } 44 45}

データを保管するところ

JAVA

1package SimpleBankSystem; 2 3import java.util.ArrayList; 4 5public class data { 6 public static final ArrayList nameData = new ArrayList<String>(); 7 public static final ArrayList passData = new ArrayList(); 8 public static final ArrayList amountData = new ArrayList(); 9 public static int count = 0; 10} 11

end.jsp

JSP

1<?xml version="1.0" encoding="UTF-8" ?> 2<%@ page language="java" contentType="text/html; charset=UTF-8" 3 pageEncoding="UTF-8"%> 4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 5<html xmlns="http://www.w3.org/1999/xhtml"> 6<head> 7<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 8<title>ありがとうございました</title> 9</head> 10<body> 11 <h1><%=request.getAttribute("message")%></h1> 12 <a href="home.jsp">ホームへ戻る</a> 13</body> 14</html>

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

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

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

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

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

dodox86

2021/06/01 09:59

「登録Servlet」とやらをGETやPOSTで呼び出している部分が見当たらないようですが。aタグのhrefには"login.jsp"と"signup.jsp"しかありませんし、end.jspと言うのもどれだか分かりません。
退会済みユーザー

退会済みユーザー

2021/06/01 10:05

すみません。end.jspを載せ忘れていました。
guest

回答1

0

ベストアンサー

PostとGetは別のリクエストですよね?なので、Requestインスタンスが別なので情報は引き継がれません。

staticに保持しているので単純に

java

1import SimpleBankSystem.data; 2 3int count = data.count;

だけでアクセスできるかと思います。

以下、今回の質問とは関係しないですが補足

  • 命名規約: class名はPascalCaseです。dataクラスは class Dataとしておきましょう
  • staticに保持する問題: (質問するためにこのように実装しているだけなら蛇足ですが)staticに保持した場合、サーバーの再起動やWebサービスの場合複数台での実行になるため、countが共有できません。最終的にはDataクラスの内容はDBなどに保存したほうが良いです。

投稿2021/06/05 10:19

takezoux2

総合スコア3

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

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

退会済みユーザー

退会済みユーザー

2021/06/05 10:24

自分でいろいろやってみたら解決しました!コメントありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問