java 簡易掲示板作成について
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 7,415
前提・実現したいこと
javaの研修をしているのですがeclipse,tomcatを使用しています。
簡易掲示板を作りたいのですが、掲示板が上手く作動しません。
条件として
・アプリケーションスコープにメッセージの一覧を格納
・画面にはフォームとメッセージを常に出力
・一つのメッセージはArticleクラスで表現
・投稿されたメッセージはArrayListで管理
なのですが上手くリストに入っていないのか、アプリケーションスコープを使えていないのかわかりません。
現在のまま実行すると掲示板の画面は出てくるのですがタイトル、本文入力しても投稿されたメッセージは表示されなくデフォルトの掲示板画面に戻ってしまいます。
どのように改善したらよいかご教授お願い致します。
サーブレット
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/BordServlet")
public class BordServlet extends HttpServlet {
@Override
protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
this.doGet( request, response );
}
@SuppressWarnings("unused")
@Override
protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
response.setContentType( "text/html;charset=UTF-8" );
PrintWriter out = response.getWriter();
out.println( "<html>" );
out.println( "<head>" );
out.println( "<title>BordServlet</title>" );
out.println( "</head>" );
out.println( "<body>" );
out.println( "<h1>掲示板作成</h1>" );
out.println( "<form action='/TomcatTest/BordServlet' method='get'>" );
out.println( "<table>" );
out.println( "<tr><th>タイトル</th><td><input type=text name=\"title1\"></td></tr>" );
out.println( "<tr><th>内容</th><td><textarea name=\"body1\" rows=5></textarea></td></tr>" );
out.println( "</table>" );
out.println( "<br>" );
out.println( "<input type=submit value=\"投稿\">" );
out.println( "</form>" );
String title1 = null;
String body1 = null;
if ( request.getParameter( "title" ) == null && request.getParameter( "body" ) == null ) {
title1 = "";
body1 = "";
} else {
title1 = new String( request.getParameter( "title" ) );
body1 = new String( request.getParameter( "body" ) );
}
ArrayList<Article> aList = new ArrayList<>();
ServletContext sc = this.getServletContext();
aList = (ArrayList<Article>) sc.getAttribute( "0" );
if ( aList == null ) {
aList = new ArrayList<>();
}
if ( title1.equals( "" ) && body1.equals( "" ) ) {
} else {
for ( Article article : aList ) {
if ( article.getTitle().equals( "" ) && article.getBody().equals( "" ) ) {
} else {
out.println( "<hr>" );
out.println( "タイトル" );
out.println( "<p>" + article.getTitle() + "</p>" );
out.println( "本文" );
out.println( "<pre>" + article.getBody() + "</pre>" );
out.println( "<hr>" );
}
}
}
sc.setAttribute( "0", aList );
out.println( "</body>" );
out.println( "</html>" );
}
}
該当のソースコード
public class Article {
private String title;
private String body;
public Article( String title, String body ) {
setTitle( title );
setBody( body );
}
public String getBody() {
return body;
}
public String getTitle() {
return title;
}
public void setBody( String string ) {
body = string;
}
public void setTitle( String string ) {
title = string;
}
}
補足情報(言語/FW/ツール等のバージョンなど)
java
eclipse
tomcat
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
入力されたtitleやbodyの内容を格納するArticleを ArrayList<Article> aList
へ追加していないからではないでしょうか。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.34%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/05/09 13:52
根本的な原因がtitleとtitle1,bodyとbody1を間違えていることによるものでした。
A-pZさんありがとうございました。