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

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

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

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

解決済

1回答

1353閲覧

入力フォームチェック後の投稿処理動作

gamebox

総合スコア13

JSP

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2016/06/02 11:06

##実現したいこと
参考書を見ながら、簡易掲示板を作成しています。
機能としては、投稿・削除・閲覧という単純なものです。
投稿する際、入力チェックを行い、チェックに引っかかったものは画面にエラーメッセージを
表示し、投稿処理をさせません。
投稿処理を止める方法がわからなくて困っています。
下記ソースコードにどのようなロジックを書いたら良いでしょうか?

また、下記の意味についても教えて頂けると幸いです。
1つ目に関しては、メッセージを追加するという意味でしょうか?
2つ目はどういう処理を行っているのでしょうか?
1.bbsManager.AddItem(item);
2.bbsManager.ReadArticles(0, bbsData);

##ソースコード
///////////////////// メッセージの投稿 ///////////////////

public void doBBSWrite(HttpServletRequest request, HttpServletResponse response, BBSDataBeans bbsData)
throws IOException, ServletException
{
BBSItem item = new BBSItem();

item.name = KanjiConv.ConvJStr(request.getParameter("name")); if (item.name == null) item.name = ""; item.email = KanjiConv.ConvJStr(request.getParameter("email")); if (item.email == null) item.email = ""; item.subject = KanjiConv.ConvJStr(request.getParameter("subject")); if (item.subject == null) item.subject = ""; item.content = KanjiConv.ConvJStr(request.getParameter("content")); if (item.content == null) item.content = ""; item.deleteKey = KanjiConv.ConvJStr(request.getParameter("pass")); if (item.deleteKey == null) item.deleteKey = ""; bbsManager.AddItem(item); bbsManager.ReadArticles(0, bbsData);

}

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

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

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

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

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

A-pZ

2016/06/02 18:10

bbsManagerクラスのコードがあると、解答が得られると思います。
gamebox

2016/06/02 22:36

下記に、bbsManagerクラスのコードを記載します。 回答よろしくお願いします。 ##ソースコード(bbsmanagerbenas) import java.lang.*; import java.math.*; import java.util.*; import java.io.*; public class BBSManagerBeans { ///////////////////// メンバ変数 /////////////////// final private String dataFilename = "bbs.dat"; protected String dataPath; protected List bbsItemsNoSync; protected List bbsItems; protected String logFilename; ///////////////////// コンストラクタ /////////////////// public BBSManagerBeans() { dataPath = ""; ReadDataFile(); } ///////////////////// コンストラクタ /////////////////// public BBSManagerBeans(String path) { if (path != null) dataPath = path; else dataPath = ""; ReadDataFile(); } ///////////////////// メッセージを取得 /////////////////// protected BBSItem GetItem(int index) { BBSItem item; try { item = (BBSItem)bbsItems.get(index); } catch(IndexOutOfBoundsException e) { item = null; } return item; } ///////////////////// メッセージを追加 /////////////////// public void AddItem(BBSItem item) { bbsItems.add(0,item); WriteDataFile(); } ///////////////////// メッセージを削除 /////////////////// public void DeleteItem(int index, String deleteKey) { BBSItem item; try { item = (BBSItem)bbsItems.get(index); } catch(IndexOutOfBoundsException e) { return; } if (item == null) { return; } if (deleteKey.compareTo(item.deleteKey) != 0) { return; } bbsItems.set(index, null); WriteDataFile(); } ///////////////////// メッセージ数を取得 /////////////////// public int GetMaxItems() { return bbsItems.size(); } ///////////////////// BBSDataBeansへメッセージを詰め込む /////////////////// public void ReadArticles(int index, BBSDataBeans bbsData) { int maxitems = GetMaxItems(); int items = 0; for(int i = 0; items < BBSDataBeans.maxItemsPerPage && index + i < maxitems; i ++) { BBSItem item = GetItem(index + i); if (item == null) continue; item.index = index + i; bbsData.setItem(items, item); items ++; bbsData.numOfItems ++; bbsData.lastIndex = index + i; if (items == BBSDataBeans.maxItemsPerPage) break; } } ///////////////////// ファイルからメッセージを読み込む /////////////////// public synchronized boolean ReadDataFile() { try { FileInputStream istream = new FileInputStream(dataPath+"/"+dataFilename); ObjectInputStream p = new ObjectInputStream(istream); bbsItemsNoSync = (ArrayList)p.readObject(); bbsItems = Collections.synchronizedList(bbsItemsNoSync); istream.close(); } catch(IOException e) { bbsItemsNoSync = new ArrayList(); bbsItems = Collections.synchronizedList(bbsItemsNoSync); return false; } catch(ClassNotFoundException ce) { bbsItemsNoSync = new ArrayList(); bbsItems = Collections.synchronizedList(bbsItemsNoSync); return false; } catch(Exception e) { System.out.println("Exception:"+e.getMessage()); } return true; } ///////////////////// ファイルへメッセージを書き込む /////////////////// public synchronized boolean WriteDataFile() { try { FileOutputStream ostream = new FileOutputStream(dataPath+"/"+dataFilename); ObjectOutputStream p = new ObjectOutputStream(ostream); p.writeObject(bbsItemsNoSync); p.flush(); ostream.close(); } catch(IOException e) { return false; } return true; } } ##ソースコード(bbsdatabenas) import java.lang.*; import java.math.*; import java.util.*; import java.io.*; public class BBSDataBeans { ///////////////////// メンバ変数 /////////////////// static final int maxItemsPerPage = 5; BBSItem[] bbsItems; int numOfItems; int lastIndex; ///////////////////// コンストラクタ /////////////////// public BBSDataBeans() { bbsItems = new BBSItem[20]; for(int i = 0; i < maxItemsPerPage; i ++) { bbsItems[i] = new BBSItem(); } if (bbsItems[0] == null) { return; } numOfItems = 0; lastIndex = 0; } ///////////////////// メッセージの追加 /////////////////// public void setItem(int index, BBSItem item) { if (index >= maxItemsPerPage) { return; } if (item == null) { return; } if (bbsItems[index] == null) { return; } bbsItems[index].name = item.name; bbsItems[index].email = item.email; bbsItems[index].content = item.content; bbsItems[index].subject = item.subject; bbsItems[index].deleteKey = item.deleteKey; } ///////////////////// アクセスメソッド /////////////////// // メッセージ数 public int getNumOfItems() { return numOfItems; } // 投稿者名 public String getName(int index) { return bbsItems[index].name; } // メールアドレス public String getEmail(int index) { return bbsItems[index].email; } // サブジェクト public String getSubject(int index) { return bbsItems[index].subject; } // 内容 public String getContent(int index) { return bbsItems[index].content; } // メッセージ番号 public int getIndex(int index) { return bbsItems[index].index; } // 次のページの最初のメッセージ番号 public int getLastIndex() { return lastIndex; } }
takyafumin

2016/06/02 23:10

ソースコードは質問に追記したほうが読みやすいですね。またコードタグを使って記載すると他の方も読みやすく、回答が得られやすいと思いますよ。
guest

回答1

0

ベストアンサー

>1つ目に関しては、メッセージを追加するという意味でしょうか?
> 1.bbsManager.AddItem(item);
itemにリクエストから取得したnameなどを入れてますよね。
それを詰め込んでますね。
そのあとWriteDataFile()を呼んでメッセージをファイルに出しているみたいです。

>2つ目はどういう処理を行っているのでしょうか?
> 2.bbsManager.ReadArticles(0, bbsData);
そのメソッドの説明のままですね。
///////////////////// BBSDataBeansへメッセージを詰め込む ///////////////////
って書いてます。
上のコーディングだと、bbsDataにAddItemで追加した内容をbbsDataの0番目に追加してますね。

投稿2016/06/03 10:18

syncrock

総合スコア209

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問