トップページ⇒tech
1001コメント315KB

JAVA+JSP+Struts+Tomcat Part3

■ このスレッドは過去ログ倉庫に格納されています
00019652006/10/26(木) 20:41:36
ほらよ。立ててやったぞw
0339デフォルトの名無しさん2007/03/17(土) 06:35:23
SVGとかが初心者向け(?)なんじゃねーの?
JSPとSVGでググればそれっぽいサンプルが見つかるがこれくらいのでいいのか?
0340デフォルトの名無しさん2007/03/17(土) 08:38:29
ぐぐって早速サンプルと解説を見つけました。
まずはここから始めようと思います、ありがとうございました。
0341デフォルトの名無しさん2007/03/17(土) 19:25:43
超くだ質問で悪いけど教えてください、おまえら

struts-taglib.jarみたいにtldがjarにまとめられていて
JSP上でtaglib指定したいんだけど、どーすりゃいいの?
tldがバラけてたら

<%@ taglib uri="/WEB-INF/lib/struts-bean.tld" prefix="bean" %>

な感じでいいんだけど

<%@ taglib uri="/WEB-INF/lib/struts-taglib.jar/struts-bean.tld" prefix="bean" %>

じゃimport出来てないみたいだし…
わざわざjarファイルバラすの?それだと確かに問題ないんだけど、なんか
違う気がするし…
0342デフォルトの名無しさん2007/03/17(土) 19:41:33
TLDファイルに<uri>が書いてあるから、それと同じ文字列。
http://struts.apache.org/tags/struts-bean とか。
0343デフォルトの名無しさん2007/03/17(土) 19:50:15
>>342
あーあー、そうか、すごい勘違いしてたかも。どうもありがとう
0344デフォルトの名無しさん2007/03/17(土) 19:59:00
>>342
それって、Servlet2.3以降くらいじゃなかったけ?
いまどきtomcat3を使ってるとは思わないが
0345デフォルトの名無しさん2007/03/17(土) 21:47:41
>>344
JARファイルの名前から、質問者はstruts1.3を使っていると推測する。
struts1.3はServlet2.3以降が動作条件なので問題ないだろう。
0346デフォルトの名無しさん2007/03/18(日) 01:15:23
struts勉強中です。Struts1.1

とりあえず資料よみまくって実際にサンプル書いたりして
概要は把握できたんですけど、ちょっとよくわからない部分が…

struts-config.xmlですけど、ちょっと省略しますが

<form-beans>
<form-bean name="hogeForm" type="foo.bar.HogeForm"/>
</form-beans>

<action-mappings>
<action name="hogeForm" type="foo.bar.HogeAction" path="/HogeForm">
<forward name="next" path="/2.jsp"/>
</action
</action-mappings>

actionタグのpath属性って何を指してるの?
nameが私用するform-beanで、typeがクラスで…ってのは解ったんだけど
pathがよくわからん。ようするにこのactionを実行する際のURLってことかな?
任意でいいってこと?
0347デフォルトの名無しさん2007/03/18(日) 01:30:24
>>346
そゆこと。
path属性に指定したURLパターンがリクエストされたら、このactionを実行するということ。
0348デフォルトの名無しさん2007/03/18(日) 01:48:38
>>347
なるほど。ありがとう。
やっとなんとか自力で書けそうだ。

これ、struts-configから書いて行くのが一番よさそうなんだね
configが出来てしまえば、あとは形にそってそれぞれを用意していく
だけって感じだな。
0349デフォルトの名無しさん2007/03/18(日) 02:34:52
Strutsを使ってフレーム+Javascriptって出来ますか?
なんかjspが生で吐き出されてしまうのだけど。。。
0350デフォルトの名無しさん2007/03/18(日) 11:50:03
>>349
「jspが生で吐き出されてしまう」がわからんが、
HTMLフレームも使えるし、JavaScriptも使える。
Strutsだからという問題は特にない。
0351デフォルトの名無しさん2007/03/29(木) 19:22:47
Eclipse + Tomcat + Strtus + log4j + CVS
というコテコテな開発をする予定ですが、
お勧めバージョン&プラグイン等はありますか?
特にTomcatはレスポンスに優れたものが良いです。

3年くらい開発現場を離れていたもので…

All-In-One-EclipseとWTPを使っておけばいいのかな。
#当時はTomcatプラグインが主流でした。
以下が安泰ですかね?
All-In-One-Eclipsev3.0.1 (Eclipsev3.2)
JDK1.5.0.11
Tomcat5.5.23
Strtus1.2.7 (2.0 1.3は変更が大きい)
log4j1.2.14
0352デフォルトの名無しさん2007/03/29(木) 23:58:09
今でもTomcat pluginつかってまつ。舞姫使えるので
0353デフォルトの名無しさん2007/03/30(金) 01:25:01
れがしーだな

>特にTomcatはレスポンスに優れたものが良いです
ttp://tomcat.apache.org/tomcat-5.5-doc/apr.html
あたりのことか?

レスポンスをあげるにはマシンパワーをあげることを考える俺は負け組か
0354デフォルトの名無しさん2007/03/30(金) 01:39:40
>>351
NetBeans

Strutsは1.2.9が出てなかったっけ?
0355デフォルトの名無しさん2007/03/30(金) 09:34:42
Webアプリ作るときって、アプリケーションごとにフォルダ作るじゃないですか
でも、普通インターネットで公開されているものってルート直下じゃないですか。

公開するときってアプリケーションごとのフォルダの中身を
そのままルートにコピーすればいいんですかね?
0356デフォルトの名無しさん2007/03/30(金) 09:50:17
設定変えればいいだけだろ
0357デフォルトの名無しさん2007/03/30(金) 10:23:32
どこの設定でしょう?
0358デフォルトの名無しさん2007/03/30(金) 19:27:47
これはいい釣り
0359デフォルトの名無しさん2007/03/31(土) 12:51:32
>>357
Apacheの設定ファイルです。
0360デフォルトの名無しさん2007/03/31(土) 23:26:09
初歩的な質問なんだけど、
InitialContextのlookupってどこでやってる?
SQL投げる度に毎回ってわけではないでしょ?

initメソッドでlookupして、datasourceをstaticな変数に格納?
0361デフォルトの名無しさん2007/04/01(日) 01:34:58
そのへんはDIでやるのでは?
Tomcat6もリソースアノテーションつかえるようになったはずだし
0362デフォルトの名無しさん2007/04/01(日) 02:22:34
>>355
webアプリの話なのかなんなんかのわかんねぇ

>InitialContextのlookupってどこでやってる?
>SQL投げる度に毎回ってわけではないでしょ?
って意味がわかんないし、

>そのへんはDIでやるのでは?
ってのもわかんねぇ

おれはもう引退すべきか???
0363デフォルトの名無しさん2007/04/01(日) 03:58:01
>>362

>>361は質問無視して知識をひけらかしたいだけだろ。
「下着は外に干します?中で干します?」
「そのへんは乾燥機でやるのでは?
最近の洗濯機は簡易乾燥つかえるようになったはずだし」
0364デフォルトの名無しさん2007/04/01(日) 04:37:01
>>363
簡易乾燥だけ違和感を感じる。
でも代替案が出てこない。
0365デフォルトの名無しさん2007/04/01(日) 05:46:40
>>360
フィルター作ってやる。
0366デフォルトの名無しさん2007/04/01(日) 11:40:58
>>362
勉強してわからなかったら引退していいよ
勉強しないでわからないのは当たり前
03673602007/04/01(日) 11:43:05
>>365
フィルターってのはServletフィルター?

全リクエストでlookupしてservletにdatasourceを引数で渡すってこと?

質問の意図はlookupの回数を減らすにはどうすればよいか?です。
きっと答えがあると思うんだけど、どこにも紹介されてないんだよね。
それとも素直にSQL投げる度でいいのかな。
0368デフォルトの名無しさん2007/04/01(日) 12:04:52
アプリの起動時に普通にdoLookupすればいいだけやん
あとはアプリの種類や開発環境によって違うが
0369デフォルトの名無しさん2007/04/01(日) 12:09:48
>>368
そのlookupした結果をどこにおいておく? static変数?
0370デフォルトの名無しさん2007/04/01(日) 12:17:42
最近はJPAしか使わんから考えたことないな
以前はHibernate+springでDAOでやってたし

詳しくは調べていないが、seamだとListenerで初期化して
Application ScopeにEntityManagerは登録されていると思う

JBOSS-EJBはHibernateによる実装なので、たぶんemを呼び出すごとに
sessionFactoryがDataSourceを使ってコネクションを張っているのだと思う

そのあたりで考えると
1)ListenerでFactoryをApplicationScopeに登録
2)FactoryでDataSourceをLookupしてSessionを返す
(トランザクションがいらなければConnectionになるかも)
って感じか?

しかし、J2SE 5.0以降ならspringかJPAを使う方が手っ取り早いと思うが
03713702007/04/01(日) 12:30:17
Factory内でehcacheあたりを使ってlookupの回数を減らす
を書き忘れた
03729512007/04/01(日) 12:32:14
java本スレでも同じ質問したんですが、スレ違いっぽいのでここで質問させて貰います。
掲示板のサンプル作ってみたんですがvewerの見た目が宜しくありません。 何かアドバイスください。
<h1>掲示板</h1>
<form action="../servlet/myplay.BbsController" method="post">
<table border="false">
<tr>
<td>名前</td>
<td><input type="text" name = "name" maxlength="10" size="40"></td>
</tr>
<tr>
<td>題名</td>
<td><input type="text" name="title" maxlength="50" size=40"></td>
</tr>
<tr>
<td>本文</td>
<td><textarea name="text" cls="40" rows="5"></textarea></td>
<input type="submit"value="送信">
</tr>
</table>
</form>
<br>
<%
ResultSet rs = (ResultSet)request.getAttribute("crs");
while(rs.next())
{
%>
<table border="true">
<tr>
<td><%=rs.getInt("id")%></td><td><%=rs.getString("name")%></td></tr>
<tr><td><%=rs.getString("title")%></tr></td>
<tr><td><%= rs.getString("context")%></td></TR>
03733722007/04/01(日) 12:36:15
それと私Beanを使うのが苦手なので、CachedRowSet使ってるのですが
これってMVCに反するのであまり宜しくないのでしょうか?
0374デフォルトの名無しさん2007/04/01(日) 12:37:41
>>372
>vewerの見た目が宜しくありません
の意味がわからん
03753722007/04/01(日) 12:39:00
>>372 掲示板の見た目が良くない意味です。(´・ω・`)
03763722007/04/01(日) 12:43:24
Viewerの綴りも違ってたΣ(´∀`;)誤解与えてたらスンマソ
0377デフォルトの名無しさん2007/04/01(日) 12:44:50
>>375
どんな見た目を期待してるんだ?
例えばこんな感じで〜みたいな画像上げてみ
03783722007/04/01(日) 12:49:20
例えば2chみたいな見た目になれば上出来。そこまで期待はしないが、このままでは
不細工すぎorz
0379デフォルトの名無しさん2007/04/01(日) 13:01:14
>>373
若干すれ違いのレスになるが、俺は好かん
JSF+faceletsを使っているんでstrutsのlogic置き換えて読んでくれ
<ui:repeat value="#{myBean.rows}" var="row">
<h:outputText value="#{row.c1}"/>
<h:outputText value="#{row.c2}"/>
</ui:repeat>
みたいな方法を勧めている

とくに<jsp:scriptlet>の使用は厳禁だ
0380デフォルトの名無しさん2007/04/01(日) 13:07:05
>>378
CSS

ttp://www.stylish-style.com/csstec/basic/b-table-deco.html
みたいなサイトで勉強するしかないだろ
見た目は自分でどうしたいか決めないと他人の頭の中は見えん
具体的に「xxするには?」には答えることができるかもしれんが
0381102007/04/01(日) 13:12:57
ありがとうございます。そのサイトにしばらく籠ってみます。
03823782007/04/01(日) 14:01:40
質問ばかりで申し訳ないのですが、スタイルシートの接続詞はxslでしたっけ?
後スタイルシートを配備するフォルダーは、使用するhtml,jspがあるフォルダーで
良いのですか?CSSを知って、新たな世界が見えた気がしました。
本当にありがとうございます。
03833782007/04/01(日) 14:17:19
一行目の接続詞という言葉、正しくは拡張子かも。サーセン。
03843782007/04/01(日) 14:28:46
拡張子は.cssで配備するところは、相対パスで指定できますね。
0385デフォルトの名無しさん2007/04/01(日) 14:30:59
>>378は基礎からやったほうがいいと思うおw本買って来い
03863602007/04/01(日) 14:42:04
結局、毎回こんなクラスを呼び出せばOKではと自己解決??
#古くて申し訳ない。Hibernateとか、もうどうでもよくて…
public class DataSourceFactory {

private DataSource datasource = null;
private static singleton = new DataSourceFactory();

public static getInstance() {
return singleton;
}

private DataSourceFactory() {
InitialContext ic = new InitialContext();
datasource = ic.lookup(jndiName);
}

private DataSource getDataSouce() {
return datasource;
}
}
03873782007/04/01(日) 15:31:28
祝、初スタイルシート。
>>385 そうですね。このサイト読み切ったら買おうかと思います。
0388デフォルトの名無しさん2007/04/02(月) 22:01:02
Actionクラスからpropertiesファイルに書き込みすることは可能ですか?
0389デフォルトの名無しさん2007/04/02(月) 22:33:19
普通のファイルと同様に可能。
0390デフォルトの名無しさん2007/04/02(月) 23:41:44
propertiesファイルの内容を、サーバーの起動時に、
Applicationスコープに入れて、Actionクラスで参照できるようにするって
ごく普通?
0391デフォルトの名無しさん2007/04/02(月) 23:42:34
今やるなら、Tomcat5.5と6.0どっちでしょう?
特に目新しい機能を使うつもりはないです。
0392デフォルトの名無しさん2007/04/03(火) 00:17:45
>>390
別にだめではないと思う。
アプリケーションスコープだと、J2EE依存になるから
俺ならResourceBundle使うけど。
0393デフォルトの名無しさん2007/04/03(火) 02:03:20
>>391
勉強なら3月に安定版が出たばかりの6でいいと思われ
実運用だとしたらいつごろ運用するのかによる
JavaEE5ベースの仕様は便利
0394デフォルトの名無しさん2007/04/03(火) 02:45:08
>>391
Tomcat6の方がJSPコンパイルが早くて幸せ。
ただWebアプリを動かすだけなら、設定方法も変わってないし。
03956592007/04/03(火) 08:43:08
6 ってinvokerの機能使えましたっけ?コメントアウトした途端
tomcat起動しなくなって、焦った思い出が。
0396デフォルトの名無しさん2007/04/03(火) 14:19:08
Tomcat 6の実力を早速試す - 移行するべき? その時期は?
http://journal.mycom.co.jp/special/2007/tomcat6/menu.html
0397デフォルトの名無しさん2007/04/03(火) 15:10:50
BEAもWeblogic10だしたな
これでJavaSE5.0+JavaEE5が加速しそうだ
0398デフォルトの名無しさん2007/04/03(火) 16:37:07
>>396 tomcat6,βじゃないっすか。βは色々機能が省略されてるから
使わない方が良い。
俺の経験した痛い経験:ウィンドウズメディアプレイヤー11のβが出てたから
おwと思って注意書きも見ず早速インスト。GYAOが見れねぇ;;;;
ということで正規板が出るまでGYAO見られませんでした。orz
注意書き見なかった漏れが悪いんだけどねΣ(´∀`;)
0399デフォルトの名無しさん2007/04/03(火) 16:44:49
>>398
その記事読んでみたがtomcat6ベータじゃねぇよ
開発中なのはNetBeansとEclipseだろ

それよりDBのコネクションすべてのサンプルでcloseしていないのはわざとだろうか
0400デフォルトの名無しさん2007/04/03(火) 16:47:17
失礼、見落とし&勘違い。
漏れはマニュアルをちゃんと見るのがヘタというプログラマーとしては欠陥品orz
04016592007/04/03(火) 16:53:38
もしinvokerの使い方知っていたら、それが載ってるHP貼るだけで良いので
教えていただけませんか?デバックしなければいけないサーブレットまで
web.xmlに書くの面倒で。_(。_。)_
0402デフォルトの名無しさん2007/04/03(火) 17:04:38
>>401
未来人乙
0403デフォルトの名無しさん2007/04/03(火) 21:16:55
>>398
メディアプレイヤーと比べるなよ。
ちなみに、Tomcatのベータで省略されたことのあるいろいろな機能って何がある?
0404デフォルトの名無しさん2007/04/03(火) 21:17:44
でばっく・・・
ビックカメラのビックと同じ程度に恥ずかしいな。
0405デフォルトの名無しさん2007/04/04(水) 00:44:38
Tomcat5.0で質問なのですが、Tomcat に来たリクエストに対してフィルター内で、
Tomcat領域以外のファイルをフォワードしたいのですが
何かうまいやり方は無いでしょうか?

具体的にはフィルターの doFilter 内で

RequestDispatcher rd = request.getRequestDispatcher("D:\\tmp\\test.html");
rd.forward(request, response);

という感じにやりたいのですが、
http://localhost:8080/TestApp/D:\tmp\test.html が見つからないとかで
表示できません。
0406デフォルトの名無しさん2007/04/04(水) 00:53:45
無理。requestDispatcherは何をするクラスなのか、forwardの動きを理解していたら無理だとわかるはず。
0407デフォルトの名無しさん2007/04/04(水) 03:49:00
>>405
>http://localhost:8080/TestApp/D:\tmp\test.html が見つからないとかで
自分で見て>>406以前の問題だと思わない?
0408デフォルトの名無しさん2007/04/04(水) 09:31:26
>>405
ファイル読み込んで返すサーブレット作れ。
0409デフォルトの名無しさん2007/04/04(水) 11:16:44
>>404 なんでだ? webサプリケーションを作るに当たってバグがあるのは当たり前。
デバックは必須作業だと思うのだが…
0410デフォルトの名無しさん2007/04/04(水) 11:25:21
>>409
デバッグ/デバック
0411デフォルトの名無しさん2007/04/04(水) 12:35:45
失礼>>404の意味が分かった。
0412デフォルトの名無しさん2007/04/04(水) 19:48:06
バイナリ出力の質問です。
response.getOutputStream()を使うと、

StandardWrapperValve[sprite]: サーブレット sprite のServlet.service()が例外を投げました
java.lang.IllegalStateException: getOutputStream()はこのレスポンスに対して既に呼び出されています

という例外が発生し、エラーログに書き込まれます。しかしバイナリの出力は正常に行われます。
この例外を発生させないようにするのに良い方法があったら教えてください。
環境は、Tomcat5.0.28と、Java1.4.2です。
0413デフォルトの名無しさん2007/04/04(水) 21:35:19
JSPはテキストの出力だけ。
0414デフォルトの名無しさん2007/04/05(木) 00:44:27
意味わkらん

>JSPはテキストの出力だけ。
はない
0415デフォルトの名無しさん2007/04/05(木) 01:02:38
HttpServletResponseクラスの、テキスト出力用のgetWriter()と、
バイナリ出力用のgetOutputStream()は同時には使うと例外が発生する。
ところがJSPをコンパイルするとフレームワークが勝手にgetWriter()をつけてしまうので
getOutputStream()を使うと例外が発生してしまう。
そもそもJSPはテキスト形式であるhtmlを効率的に出力するための機構なので、
画像やアーカイブなどバイナリの出力は想定していないし、使う必要もない。
バイナリの出力はJSPを使わず、生のJava Servletを使えばよい。
0416デフォルトの名無しさん2007/04/06(金) 00:47:34
なんでJSPでバイナリ出力の話になってるわけ?
0417デフォルトの名無しさん2007/04/06(金) 08:37:26
>>413がものすごいエスパーだから
0418デフォルトの名無しさん2007/04/06(金) 09:10:52
質問なのですがsetAttribute()などを使ってjsp間でインスタンスを使い回すことは
技術的に可能なのでしょうか?
例えばsetAttributeでserializableインターフェイスを実装したインスタンス
をjspページでbeanとして受け取って使用。
そのインスタンスをまたsetAttributeでセット・・・の繰り返し
0419デフォルトの名無しさん2007/04/06(金) 09:31:30
>>418
SESSIONやAPPLICATIONスコープでは、そのスコープ内では同じインスタンスが帰る

>またsetAttributeでセット・・・の繰り返し
は不要
04204192007/04/06(金) 09:33:52
>>419
> 同じインスタンスが帰る
からjsp間で共有が可能。

が抜けている
0421デフォルトの名無しさん2007/04/06(金) 09:42:20
そうなんですか。自分でアプリ作って実験してみようと思います。
素早い回答ありがとうございました。
0422デフォルトの名無しさん2007/04/06(金) 10:17:14
NetBeansがすごく便利なんですがEclipseを使ったほうが
いいのでしょうか?
0423デフォルトの名無しさん2007/04/06(金) 11:09:53
便利なほうでいいだろ
なんのためのIDEだ
0424デフォルトの名無しさん2007/04/06(金) 15:29:45
jarファイルをcommon\libに置くのと
server\libに置くのは何が違うんでしょうか?
0425デフォルトの名無しさん2007/04/06(金) 17:21:39
>>422 あるあるw漏れもDB選ぶとき編集しやすいしjdbcドライバーが割れてる
HSQLDB使いたかったんだけど、ブログで実務向けじゃないっての見て
MYSQLに鞍替えしたよ。jdbcドライバーとか調べるの面倒だった・・・
0426デフォルトの名無しさん2007/04/06(金) 23:00:50
>>425
MYSQLが実務向けなのかと・・・
0427デフォルトの名無しさん2007/04/06(金) 23:25:53
>>426
普通に実務で使われていますが、何か?
0428デフォルトの名無しさん2007/04/06(金) 23:32:34
MuSQLはAccessよりかは遥かに実務向けだろう。
Accessの方が実務に使われているとしてもな。
0429デフォルトの名無しさん2007/04/06(金) 23:33:22
MuSQLってなんだよ
なんか可愛いじゃねーかw
0430デフォルトの名無しさん2007/04/06(金) 23:33:50
MoSQL
0431デフォルトの名無しさん2007/04/06(金) 23:39:51
楽天もミクシィも使ってるな
0432デフォルトの名無しさん2007/04/07(土) 01:11:38
>>431
MixSQL?
0433デフォルトの名無しさん2007/04/07(土) 03:26:36
>>425
いまならDerbyだな。H2でもいいけど。
まあ、SQLが通らないとかトランザクションとかで実務向けじゃないとかいう理由なら、MySQLよりPostgreSQLのほうがいいわけだが。
0434デフォルトの名無しさん2007/04/07(土) 03:48:50
>>433
いつの時代の話してんだよw
0435デフォルトの名無しさん2007/04/07(土) 04:52:56
今ならoracleでしょ
昔からって話もあるがw
0436デフォルトの名無しさん2007/04/07(土) 07:22:06
DB2の事も思い出してやってください・・・。
0437デフォルトの名無しさん2007/04/07(土) 10:23:05
あなどってはいけない。SQLServer
0438デフォルトの名無しさん2007/04/07(土) 11:51:51
oracle フリーソフトだけど、ネットで取ろうとしたらあっちのDBに自分の情報
登録しないといけないっぽいから、oracleは切った。
ダウンロードしようとしたらパスワード求められるって何様?
0439デフォルトの名無しさん2007/04/07(土) 12:08:35
>>438様にはかないませぬ
■ このスレッドは過去ログ倉庫に格納されています