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

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

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

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

JSP

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

Java

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

サーブレット

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

Q&A

解決済

2回答

4815閲覧

おかしなことにJSPでデータベースの値を表示させたいのですが、全くサーブレットを通さずにデータベースの値を取得してしまっています

Sfidante

総合スコア90

MySQL

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

JSP

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

Java

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

サーブレット

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

0グッド

0クリップ

投稿2015/04/27 01:35

こんにちは。
プログラミング初心者で原因がわからずに困っています。

まず、何を行いたいかと申しますと、
JSPであるボタンをクリックしたら、
サーブレットのある処理を行い、
DAOのメソッドで照会(SELECT)して、
違うJSPでDBの値を表示したいというものです。

続いて、どういった症状かと申しますと、
JSP⇒サーブレット⇒DAO⇒DB⇒DAO⇒サーブレット⇒JSPと
大まかにこういった流れで値を表示されたいのですが、
それがどうも
JSP⇒DB⇒JSP
のようになっている気がしてならないのです。

といいますのも、
サーブレットやDAOを全部削除してJSPを出して
ページの遷移を行ったところ
データベースの値をしっかりと取得して表示していました。
データベースの値を変えて試したところ、
しっかりと変更後の値を表示していました。

原因がわからず困っています。
何卒ご教授願います。

また、コードについて記載した方がよろしかったらおっしゃってください。
よろしく御願い致します。

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

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

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

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

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

guest

回答2

0

JSPの中にスクリプトレットを書いているなら、JSP単独でDBアクセスできますね。

投稿2015/04/27 01:48

chokojori

総合スコア971

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

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

Sfidante

2015/04/27 01:57

ご返信ありがとうございます。 一つの例で申し上げますと、 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>step2 友人を選ぶ</h1> <form action="Serv01.do?ope=24" method="post"> <input type="hidden" name="myprofile" value="2"/> <input type="hidden" name="pairprofile" value="1"/> <input type="submit" value="FBID&PairID取得"/> </form> <form action="Serv01.do?ope=30" method="post"> <input type="hidden" name="myprofile" value="2"/> <input type="hidden" name="pairprofile" value="7"/> <input type="submit" value="Time取得"/> </form> <a href="Serv01.do?ope=27">ペア解消</a><br> <a href="Serv01.do?ope=23">session終了</a> <a href="Serv01.do?ope=22">MY_PAIR_IDを1に</a> </body> </html> というJSPがあり、サーブレットに接続しているのですが、 そういったスクリプトレットは記載していないのです。
chokojori

2015/04/27 02:09

これって何かのフレームワークとセットでJSPを使っていませんか? web.xmlで直接JSPをURLに対応させているのではないように見えますが。
Sfidante

2015/04/27 02:16

おっしゃられる通り、Strutsを今回は利用しています。 web.xmlは下記のように記述しております。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>struts1a</display-name> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>nikukaiLogin</servlet-name> <servlet-class>nikukai.LoginServlet</servlet-class> </servlet> <servlet> <servlet-name>nikukaiCallback</servlet-name> <servlet-class>nikukai.CallbackServlet</servlet-class> </servlet> <servlet> <servlet-name>nikukaiLogout</servlet-name> <servlet-class>nikukai.LogoutServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>nikukaiLogin</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>nikukaiCallback</servlet-name> <url-pattern>/callback</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>nikukaiLogout</servlet-name> <url-pattern>/logout</url-pattern> </servlet-mapping> <servlet> <servlet-name>serv01</servlet-name> <servlet-class>nikukai.Serv01</servlet-class> </servlet> <servlet-mapping> <servlet-name>serv01</servlet-name> <url-pattern>/Serv01</url-pattern> </servlet-mapping> <session-config> <session-timeout>1440</session-timeout> </session-config> <welcome-file-list> <welcome-file>nikukai.jsp</welcome-file> <welcome-file>nikukai.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
chokojori

2015/04/27 02:36

このweb.xmlの定義によれば、*.doにはStrutsのActionServlet対応しますから、struts-config.xmlに定義しているアクションクラスが呼び出されます。アクションクラスの中でDBにアクセスしてbeanに値を格納すれば、そのビューであるJSPに値が渡りますね。 あなたがJSPを呼んでいるつもりでいるURLは*.doではありませんか?
Sfidante

2015/04/27 03:06

試しにstruts-config.xmlの記載を全て削除して 改めて試しましたが、変わりありませんでした。 というのも、struts-config.xmlは これらのページ遷移とは関係ないのかなと思っております。 そのstruts-config.xmlが以下のようになっております。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <form-beans> <form-bean name="page1form" type="jp.Page1ActionForm"/> </form-beans> <action-mappings> <action cancellable="true" path="/action1" input="/page1.jsp" type="jp.Page1Action" name="page1form"/> </action-mappings> <message-resources parameter="resource" /> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in> </struts-config> 理解不足なところがあるため、 考えが間違っているかと思います。 申し訳ありませんが、よろしく御願い致します。
Sfidante

2015/04/27 03:15

恐れ入りますが、問題は開発環境(eclipse)にあるかもしれません。 といいますのも、 JSPは全く関係なく、 .javaをjava applicationとして実行させてSystem.out.println(A);を コンソールに表示させました。 その後、そのSystem.out.println(B);の表示内容を変更して実行させましたが、 変更されず、最初に表示させたもの(A)が表示されました。
Sfidante

2015/04/28 00:28

遅くなってしまい申し訳ございません。 色々と考えてくださりありがとうございました。 今後とも何かございましたら、 よろしく御願い致します。
guest

0

ベストアンサー

状況が掴めないので当て推量ですが、Webサーバーのキャッシュが残っているような状況などないでしょうか。
開発環境にもよりますが、作成されたclassファイルはWebサーバーのワークエリアにコピーされて動くというのが一般的です。
ソースコード上の改変がWebサーバーの挙動に反映されないのだとすれば、Webサーバーのワークエリアを確認してみましょう。

開発環境や、サーブレットが動いていないと考えた根拠を提示すると良いと思いますよ。

投稿2015/04/27 03:14

nagise

総合スコア87

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

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

Sfidante

2015/04/27 03:20

ご回答ありがとうございます。 ご指摘通り、キャッシュが残っているのが原因かと思います。 実際、新しく作ったJavaファイルのclassファイルが ワークスペースにコピーされていないようです。 その辺を中心に調べてみます。
Sfidante

2015/04/28 00:27

遅くなりもうしわけございません。 classファイルをリフレッシュして 再度設定し直したら、 無事にサーブレットを通るようになりました。 何故このようなことになったのかの原因はわかりませんでしたが、 無事解決できてよかったです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問