- 1 名前:デフォルトの名無しさん [2012/06/03(日) 16:18:39.74 ]
-
Java用のWeb Application Frameworkについて語るスレッド 海外では多数のFrameworkがあるのに、日本語の情報は意外と少ない 開発生産性、パフォーマンス、ドキュメントの充実度、安定性、使いやすさなどを 比較しながら、最高のフレームワークを探してみるスレッド Web Application Framework のリスト en.wikipedia.org/wiki/Comparison_of_web_application_frameworks 特徴の比較 en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Comparison_of_Features
- 369 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 19:26:38.33 ]
- >>368
それはさすがに極論すぎて、ORマッパ以前にバグやセキュリティホールの温床になりそうです。 現状Webアプリなどの場合はORマッパがボトルネックになるより、 RDBMSの処理の方がボトルネックになることが多くて、 ORマッパの意義はむしろ昔より重みが増しているように感じられます。 #つまりCommons DbUtils使ってやれはちょっと...ということです。 #そして最近のORマッパは結構薄いラッパであることが多く、 #そんなに重たくありません。 ただ素のSQLやPLSQL/pgSQLなどの手続き言語を併用するのを 否定することではなく、バッチ処理のようなデータベースで処理だと ORマッパ以前にフロントエンドの処理がボトルネックになることが あると思います。その場合はそれを選択すればいいだけです。
- 370 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 19:37:43.30 ]
- >>369
O/Rマッパーを使わないとバグやセキュリティホールの温床になるってのは 技術職、開発会社としてどうなんだ? 俺は条件によってはO/Rマッパーが有効なプロジェクトもあると思ってるが 上記のことは本質とはだいぶ違うと思うのだが。
- 371 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 19:40:36.78 ]
- SQL生成用クラスを一個つくればいいよね
- 372 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 19:45:11.79 ]
- >>370
本質じゃないというか言いたいのは「直接JDBC触らせるな」(DbUtils含む)ということですよ。 ORマッパはDAOみたいな機構も持っていることがあるので、 それなら最初からORマッパを使えば?ということです。 そういう汎用性をちゃんと持っているという認識が必要です。 >>371 そうですね。 でもそのサポートもDAOやORマッパがやってくれますけどね。
- 373 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 19:48:36.82 ]
- あと聞きたいのですが、JDBCなどを使っている場合、
java.sql.PreparedStatementをちゃんと使ってますか?
- 374 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 20:04:13.30 ]
- SQL生成用クラスでPreparedStatementを使ってバインドしてるよ。
- 375 名前:デフォルトの名無しさん mailto:sage [2013/03/26(火) 01:20:56.00 ]
- Javaソースの中で文字列連結しながらSQL作るようなのはダメ絶対
- 376 名前:デフォルトの名無しさん mailto:sage [2013/03/26(火) 01:40:04.61 ]
- 別にダメじゃないだろ
O/RマッパーやPreparedStatementがないと 基本的なセキュリティ対策すらできないことのほうが問題 Javaじゃないと作れない人になってしまうよ
- 377 名前:デフォルトの名無しさん mailto:sage [2013/03/26(火) 02:09:42.74 ]
- JavaスレだからJavaソースと書いたがどの言語でも同じ
ただしSQLを組み立てるライブラリは除く、を書き忘れた アプリで文字列連結しながらSQL作るようなのはダメ絶対
- 378 名前:デフォルトの名無しさん mailto:sage [2013/03/26(火) 05:36:16.05 ]
- >>376
PreparedStatementを積極的に使わない理由が思いつかない。 動的SQLなんて大抵の言語とRDBMSで使えるでしょ。 Javaじゃないと作れない人になってしまう理由がない。
- 379 名前:デフォルトの名無しさん mailto:sage [2013/03/26(火) 07:38:05.65 ]
- >>376
他の言語もJDBCに相当する機能では、今はPreparedStatement的な手法が主流だし問題ないと思う
- 380 名前:デフォルトの名無しさん mailto:sage [2013/03/26(火) 11:20:44.10 ]
- 昔は、文字列と、変数の配列(リスト)の2つを受け取って、
SQLをStringBuffer(StringBuilder)で連結しつつ、 ? を埋め込んで、 PreparedStatement 発行したもんだ。
- 381 名前:デフォルトの名無しさん mailto:sage [2013/03/26(火) 12:31:12.72 ]
- オープンソースJava O/Rマッピングソフト一覧(2013年1月版) | Unofficial DB2 BLOG
ttp://db2.jugem.cc/?eid=2540
- 382 名前:デフォルトの名無しさん mailto:sage [2013/03/26(火) 22:37:34.34 ]
- PreparedStatementってDBサーバ側の機能だからな
>>376の発想がおかしい
- 383 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 05:23:30.46 ]
- >>382
「Javaじゃないと作れない人になってしまうよ」と言っている当人がJavaでしか作ったことがないパターンでは。
- 384 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 08:43:10.56 ]
- DBとのやり取りにDAOパターンを採用するとき何をどこに入れるかってどうすることが多い?
(1) Aテーブルに対する主キーでの1件取得、全件取得、挿入、更新、削除などの基本的な操作 (2) Aテーブルに対する業務に特化した操作(他業務で使うことはない) (3) 複数テーブルを結合する複数業務で利用する操作 うちの周りだと下記のようにすることが多いんだけど、保守フェイズに入ると(3)が問題になりがちなんだよね (1)は全テーブル分用意して共通パッケージに突っ込んでる (2)は業務ごとにパッケージとDaoクラスを作成してそこに突っ込む (3)は代表的なテーブルのDao(上記1に該当するもの)に突っ込んで他の業務でも使う
- 385 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 08:52:59.87 ]
- 開発の規模によるがうちなら⑴と⑶だけかな
⑵は他の業務から使えないのが微妙
- 386 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 08:54:46.69 ]
- 問題の内容忘れてたわ…
問題1. どの業務が使っているかわかりにくいから触るのが怖い 問題2. 最初は(2)のパターンだったけど改修の結果(3)のパターンになった時に共通パッケージに移動しづらい (移動すると共通Daoを触る全業務の再テストが必要になる) 個人的には問題1はお前保守なんだから調査しろよ、 問題2はそこの客の方針がそうなら移動諦めて各業務Daoで重複させるか再テスト頑張れよ って思ってて、実際そう伝えたんだけど納得されなくてなあ… 銀の弾丸はなかなかないんだよ
- 387 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 09:12:01.84 ]
- 結局生SQLが一番いいという結果になるな
- 388 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 11:55:44.21 ]
- >>382
その上「基本的なパフォチューすらできない」っていうねw SQLがどうやって実行されるか気にしたこともないんだろうな
- 389 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 11:58:16.26 ]
- 結局SQLがどうやって実行されるか気にしなければならない
O/Rマッパは使わないほうがいい。
- 390 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 12:49:51.63 ]
- >>388
なんでセキュリティ対策のこと書くとパフォーマンスチューニングについて わかってないことになるの?議論がめちゃくちゃ
- 391 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 13:35:29.45 ]
- 前から言ってるけどO/RマッパやDAO、DSLか生SQL、どれを選択するのかは使う用途によると思う。
その前提がなくただO/Rマッパは使わないほうがいいというのは、少なくとも今のトレンドに あっていないことも自覚すべきじゃないかと思う。 #特に国内と国外との違いにいつも愕然とするんですよね。 SQLやその実行過程を理解しガリガリにチューニングしなければならないというのも間違っていないし、 そしてO/Rマッパを使って抽象化・簡略化するのも間違っていないと思う。 何が目的でどういう手段を使うべきかをもうちょっと考察して議論したほうがいいと思う。 PreparedStatementを例に出したのはちょっとしたトラップで、 * PreparedStatementの利点を理解しているか? * そもそも(たいていの場合)PreparedStatementを直接書くのが間違っているのを認識しているか? を知りたかったからです(すみません)。
- 392 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 14:38:38.18 ]
- でもJavaの用途はWebがほとんどだからパフォーマンス重視なのは
仕方ない。だから生SQLが一番いい。
- 393 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 14:49:37.60 ]
- >>392
興味本位で聞くのですけど、O/Rマップってどのくらい遅いのですか? 具体的にベンチマークしましたでしょうか? #「あおり」じゃないので興味あったらで。 十分選択肢に入るくらい軽くなってますよ。 #さらにいうと生SQLも書けるのですが(例えばMyBatis)。
- 394 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 15:02:22.39 ]
- O/Rマッピングはアンチパターン? | スラッシュドット・ジャパン デベロッパー
ttp://developers.slashdot.jp/submission/42933/
- 395 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 15:14:44.15 ]
- >>393
びっくりするほど遅い。んで生SQLに書き直さないといけなくなる。 せめて生SQLにしないといけない割合が全体の1割未満なら使ってもいいけど 実際のプロジェクトではマスタメンテのような機能以外は 生SQLになってしまうので使い物にならない。
- 396 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 15:29:57.81 ]
- どういうケースでどんな理由で遅くなるのか具体例が欲しいな。
- 397 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 15:40:04.67 ]
- >>395
(また言いますけど煽りじゃないです。O/Rマッパ開発者としては現状認識を知りたい。) 生SQLをO/Rマッパに使ってもですか? 私の思う生SQLやストアドプロシージャを使う場面は、 * 長大で複雑ななクエリ(検索) * バッチ処理など、検索以外にも挿入や更新が多い処理 だと思うのですけど、そういうケースですか? あとO/Rマッパ(名前およびバージョン)に何使ったのかも気になりますね。 一般的なケースだとあまりボトルネックにならないのですが...。特にWebアプリだと。 >>395 そうそう気になりますよね。参考になりますし。
- 398 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 16:47:15.90 ]
- RailsみたいにORマッパに適したテーブル設計ができていれば、
結構不都合無いパフォーマンスになるんですけどね。 IOの激しいWeb系とかゲームだと設計的に厳しいし、 がちがちの業務系だとそういう設計のできないアホなSEばっかだし、 そもそも設計をフレームワークに合わせるのか、とか不毛な議論が始まるので。。。 小規模なアプリをサクッと作る場合には便利なんですけどねぇ。
- 399 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 17:42:51.07 ]
- 社内システムならDBの負荷はたかがしれてるから
ORM使っても性能上の問題ないよ 開発スピードも上がる。 パフォーマンスが大きく変わるのはメモリ上にDBのデータが のっているかどうかだろう WebサービスであってもほとんどORM使って問題ないと思うし 本当に性能が必要な場面はストアドプロシージャ使えばSQLより速くなる。 必死にORM否定してる人は使い方が分からないか、 使いどころがわからないだけ
- 400 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 17:50:31.65 ]
- ストアドプロシージャは使いたくないです。
- 401 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 18:09:34.30 ]
- まぁ2:8の法則だわな。
8割の処理はORMで十分だし、利用頻度が高かったり負荷の高い2割の処理は生SQL。 ってのが常道だと思う。 俺がよく使ってるのはHibernateJPAだけど、速度的には不満は無いね。 むしろDBにきちんと索引張ったり外部キー設計する方が大事だと思う。
- 402 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 21:02:46.76 ]
- ORMいらない、と言っている人間ははよくわからんな。
Micro-ORMで十分、なら理解できるが。
- 403 名前:デフォルトの名無しさん mailto:sage [2013/03/27(水) 21:14:49.27 ]
- ORMと一括りにして議論している時点で程度が知れてる、というべきだな。
- 404 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 00:33:47.55 ]
- 同じSQLでO/Rマッパーだけ遅いなら外すしかないね。
内部のリフレクションとかが遅いんじゃないの?
- 405 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 01:24:46.14 ]
- 問題になる遅さなのそれ。
- 406 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 01:29:38.75 ]
- 生SQLとかORMいらないとか連投してるのは荒らしだろ
現実的にはこのどっちか ・SQLを暗黙的に発行することがあるHibernate含むJPA系のORM ・プログラムで指定したとおりのSQLを発行するMyBatisやSeasar系などのORM
- 407 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 14:06:46.51 ]
- 生SQLの定義がわからんね
SQL*Plusなんかで直接実行できるSeasarの2way SQLは生SQLなのかどうか
- 408 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 14:32:20.33 ]
- フレームワークが勝手に作ったSQLを発行するんじゃなくて、
開発者が書いたSQLを流すのが生SQLでいいと思う MyBatisとかDOMAとかの生SQLベースのマッピングはめんどくさいところもあるけど入門編にはいいと思うわ
- 409 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 14:41:14.77 ]
- だとするとJPA系を除く多くのORMは生SQLが主なんだが
生SQL君が言いたいのはORMイラネじゃなくJPAイラネなのか? ORMイラネ君と同一人物かと思ってたんだが
- 410 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 14:49:50.56 ]
- >>407 >>409
ORMはSQLを生成して、SQLを投げるだけだよ 複雑なJOINしない限り、ほとんど性能は落ちない。 生SQLってのは自分でSQL文を書くってことだろう JPAもORMの一種 ORM要らないって連呼してるひとは、 上のほうでフレームワークも要らないと必死に主張していたひとと同一人物だと思う。
- 411 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 15:07:49.10 ]
- >>410
自分で書いたSQLをORMで実行した場合も生SQLだとしたら、 生SQLが必要だからORMイラネってのはおかしいという話 生SQLが主のORMもたくさんあるわけだから 生SQL君とORMイラネ君が同一人物かどうかはしらんけど
- 412 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 18:43:58.87 ]
- 俺は生SQL書きやすいORMならOK派かな。
Hibernateみたいなのは勘弁。 フレームワークも不要。
- 413 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 20:20:44.35 ]
- MyBatis+標準SQL(SQL92あたり)でいいわ
- 414 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 22:50:54.10 ]
- まぁ日本の開発現場ではNIH症候群が蔓延してるからな。
車輪の再発明大好きだし。
- 415 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 00:30:58.37 ]
- おれもMyBATIS+SQLだな
学習コスト少なめだし、バグがあっても追いやすいし 裏で動的にSQL生成してるようなフレームワークで いい思いをしたことがない
- 416 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 05:58:23.38 ]
- SQL方言だけ吸収してくれれば
- 417 名前:デフォルトの名無しさん mailto:sage [2013/03/29(金) 07:20:01.88 ]
- Hibernateかなぁ。
幸い個々のエンティティに関して比較的単純なCRUDしか必要が無いのでMyBatisでSQL書いた ところでHibernateが生成するSQLとあまり大差無いものを書くことになったり。 個人的にはエンティティ引っぱってくるときに射影相当の演算や、関連を引っぱってくるのを LazyにするのかEagerにするのか、固定ではなく場面に応じて簡単に指定出来ると有り難い。 HibernateだとCriteriaに頼ることになるので面倒。
- 418 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 09:24:08.73 ]
- >>415
どれでも発行SQLだけ確認やログ出しも出来るし 2WAYならチェックした上でマズいの手書きできる フレームワークで統一性のない動的生成ルールが面倒だけどな それよりもDTO周りの議論に戻ってくれ 俺も今DTO増殖中で疲れてる
- 419 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 10:34:49.59 ]
- DTOはある程度割り切って共有で結論出てなかったっけ
割り切り共有+継承+テーブル定義とにらめっこ、 すればそこまで増殖しないと思うが。
- 420 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 13:05:35.15 ]
- DTOのクラスが増えるのが嫌なら、全部Mapに突っ込んでしまえば?w
- 421 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 13:07:19.28 ]
- Mapでええやろ
- 422 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 13:37:01.55 ]
- mapでいいならJavaじゃなくていいだろ
getterがあるからキーの文字列を意識しないで済んでるのに
- 423 名前:デフォルトの名無しさん mailto:sage [2013/03/30(土) 19:32:32.72 ]
- MapとDTOは使い分ければ良いと思うけどなぁ。
- 424 名前:デフォルトの名無しさん [2013/03/31(日) 10:16:31.71 ]
- Java系のフレームワーク、海外ではGrailsがすごい人気高くて驚いた
Java系だとGrailsはトップ3に入ってる Java系でサクサク開発できるのはGrailsとPlayみたいだ Javaの方言のGroovyだからといってGrailsを敬遠しないほうがよさそう
- 425 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 11:10:40.80 ]
- GroovyはJavaの資産は使えるなら積極的に使おうって姿勢かな
- 426 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 22:08:24.97 ]
- GroovyはJavaの方言というかJavaプラスアルファぐらいに考えた方が良いと思う。
Javaの文法にRuby風の文法やメソッドも付け加えた感じで、両方を混ぜて書ける。 JavaとRuby両方の素養がある人だとすごく便利だと思うよ。 Grailsだと根っこのドメインロジックはJava風にカッチリ書いたりそれこそJavaとして書いて、 逆にGSP(Grails版JSPみたいなもの)に埋め込むコードとか簡単なコントローラーはGroovyの 文法駆使して簡単に書く。
- 427 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 00:51:09.20 ]
- Groovy、Rubyほどギークでもない人でもゆるく書けるし、scalaより難しくないので、もっと流行ってもいいと思うんだけどな。
といいつつ周りではやっとこさ少しずつ広がってきて、以下のようなことをやるような人が増えてきた。 →納品物(webアプリケーション本体)はJavaだが、UTコード、内部ツールはGroovy、など。 ビルドはgradle、とか。 といいつつRubyに素養がある人はRubyでやっちゃうんだよな。
- 428 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 02:41:51.01 ]
- JavaのView層はいつまでも安定しないね
似たようなコードの書き方、次から次に覚えないといけないのはきつい 他の言語はほとんど安定してるのになあ
- 429 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 03:21:29.18 ]
- Grailsは確かにもっと流行っても良い気はする。
会社でやっているプロジェクトも最近ようやくGrails2.2.1にバージョンアップして依存性管理を Mavenに移行出来たので他のプロジェクトとの連携がよりやりやすくなった。
- 430 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 07:00:39.53 ]
- フレームワーク使わない人ってURLマッピングはどうやっているのだろう。
例えばクエリーを使ったレガシーなaaa/product_comment?id=12345&comment=6789みたいな URLではなく、よりRESTfulなaaa/product/12345/comment/6789みたいなURLを使う場合。 フレームワーク無しの生Servertだと毎度自前でpathをパースしたりサブリソース毎に条件分岐したりと 手作りできるにせよ無駄に面倒だと思う。
- 431 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 11:03:54.12 ]
- >>430
mod_rewrite
- 432 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 11:09:20.88 ]
- 自前でパースしないと遅いしな
- 433 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 17:14:29.59 ]
- 面倒を厭わない人たちなのはよく解った。
- 434 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 17:20:23.50 ]
- >>433
面倒を避けようとしてさらに面倒なことになってる印象。
- 435 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 22:00:58.98 ]
- でもSEO対策が入ってくるとできあいのフレームワークじゃ難しいんだよな
みんなどうしてるか、そっちのが気になるわ
- 436 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 22:09:02.05 ]
- JSFだのASP.NETだのはイントラじゃなきゃ難しいな
- 437 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 22:22:26.68 ]
- >>435
どうやってタグを吐くかだから フレームワークは無関係
- 438 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 22:48:03.67 ]
- JSP&Servletだけで十分フレームワーク
- 439 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 22:50:16.68 ]
- URLについては、Struts時代はRouter自作。
Spring MVCでは無問題。
- 440 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 23:19:13.95 ]
- jspの文字コードがshift_jisで、サーブレットの文字コードがutf-8で書かれている場合、
jsp → サーブレット → jsp でformパラメータの受け渡しで日本語が文字化けしないようにするには どうしたらいいでしょうか? サーブレット側で 変数 = new String(request.getParameter("パラメータ名").getBytes("Shift_JIS"), "UTF-8")); としてPOSTパラメータを受け取ってUTF-8として処理し終わった後、 変数 = new String(変数.getBytes("UTF-8"), "Shift_JIS"); としてShift_JISに戻して request.setAttribute("jspで受け取るパラメータ名", 変数); としたのですが文字化けしてしまいます。
- 441 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 23:30:22.30 ]
- >>440
JSPの先頭 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="Windows-31J" %> Servlet req.setCharacterEncoding("UTF-8"); こうだったかな。JSPファイルもUTF-8にしちゃえば管理も楽だと思うのだけどねぇ
- 442 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 23:33:39.56 ]
- >>441
すいません。jspは文字コードを使い分けたいので、そのやり方はダメなんです・・・。 あくまで違う文字コードでの受け渡しでやりたいんです。
- 443 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 23:41:07.31 ]
- Java内部の文字列処理はUTF-16だよ
サーブレットの文字コードって表現が既におかしいんじゃない? JSPのcharsetもSJISにしたいなら req.setCharacterEncoding("Windows-31J"); とサーブレット側で受ければいい
- 444 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 00:05:07.91 ]
- >>443
サーブレットのソースコードのテキスト文字コードがUTF-8ってことです。 サーブレット側では冒頭で request.setCharacterEncoding("Shift_JIS"); response.setCharacterEncoding("Shift_JIS"); と書いています
- 445 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 00:29:51.55 ]
- >>443
ああ、サーブレット側でsetCharacterEncodingやsetConentTypeで Shift_JISを指定するだけで行けました。 サーブレット内での余計な変換処理は要らなかったんですね。 どうもです。
- 446 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 02:15:06.83 ]
- >>438
>JSP&Servletだけで十分フレームワーク これはマジでそう思う。 ただ他方で機能不足なフレームワークはその上にオレオレフレームワークが育つ格好の培地でもある。
- 447 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 04:23:34.10 ]
- JSPはServletのフレームワークだな。
JSP嫌いだから引っこ抜いちゃうw
- 448 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 04:40:47.74 ]
- >JSP&Servletだけで十分フレームワーク
ただしServlet3以降に限る
- 449 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 10:51:31.04 ]
- Servlet2.5 と Servlet3 で大きな違いってあるの?
Servlet3はほとんど追いかけてないのですが、 HttpServletののサブクラス作るときにアノテーション付けておけば、web.xmlに書かなくていい ぐらいのことしか知らん。
- 450 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:10:55.48 ]
- ないと思うなー。
>HttpServletののサブクラス作るときにアノテーション付けておけば、web.xmlに書かなくていい フレームワーク自体を作る側の人にとって嬉しいくらいじゃね?
- 451 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:15:23.37 ]
- そもそもアノテーションとか要らない
- 452 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:21:53.88 ]
- なにいってるんだか
xml地獄を解決するために生まれたのがアノテーションでしょ
- 453 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:24:32.09 ]
- フレームワークさえなければXML地獄もなかったのに
- 454 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:29:46.34 ]
- >>453
GrailsはXML地獄なかったよ XML地獄のフレームワークはほんと時代遅れ コードが見づらくなるし、コンパイラで検出できないエラーがでる。 なるべくコードで設定するってのが流行りだし、アノテーションは必須の機能
- 455 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:31:41.31 ]
- じゃあなんでSQLをXMLに外出しするような糞ORマッパを
勧めたりするんだ?
- 456 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:38:17.94 ]
- >>455
アンカーくらいつけてまともな日本語で書けよ 何が言いたいんだ
- 457 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:43:30.16 ]
- フレームワークとかORマッパが嫌い
- 458 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:47:54.30 ]
- >>457
だったらこのスレを見るなよ
- 459 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 08:53:54.35 ]
- いやさすがにわかるだろw
XML地獄を敬遠するくせにSQLはXMLいいのかってことだろ? Javaの中でしか使わない設定はアノテーションとかでJavaの中に取り込んでいいと思うんだけど、 SQLについてはDBに流して確認とかよくやるから中に入り込まない方がいいな 今の所はSeaser系の2-way SQLが一番その辺り楽にできる パラメータをSQLコメントに追い出すことで文法エラーにしないのは秀逸だと思った
- 460 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 09:04:33.36 ]
- 海外だとHibernateが第一選択肢でそれ以外は比較的測定限界以下なのに、日本だとMyBatisとか
ガラパゴスフレームワークの類が幅をきかせているのは何か特殊事情があるのかな。
- 461 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 09:20:17.93 ]
- 外出しすれば綺麗だと思うのは間違い
C++になっても変数宣言を関数の先頭でやるくらい汚い
- 462 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 09:21:15.39 ]
- 全部のORMがXML使うわけじゃないし
TypesafeなORMが良ければそういうORMと組み合わせて 使えばいいだけだろ 入れ替えて使えるようにDIとかがあるわけで うんこフレームワークを体験したからといって フレームワーク全体を否定するのはアホ うんこORMを体験したからといって ORM全体を否定するのは馬鹿
- 463 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 09:23:53.81 ]
- いろいろなフレームワークがあること自体間違い
- 464 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 10:28:49.35 ]
- SQL外出しなオレオレフレームワークは色んな現場で見てきたけど、大体良い思い出が無いなぁ…。
大体SQLだけメンテしようとして、SELECT項目やバインド変数の数間違えてトラブるのが定番だった気がする。 事前にコンパイラみたいなのでチェックできるならいいんだけどね。
- 465 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 11:36:08.03 ]
- とりあえずSeasar信者の受け売りが嫌だ
- 466 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 11:47:15.81 ]
- 色んなフレームワークがあるのは構わんけど、色んな実装があるのは嫌だ。
JAX-RSとかJSF、JPAとか。 つーか、WebやORMのフレームワークで、わざわざ仕様と実装をわける意味がわからん。 結局、実装固有の拡張機能を使わないと使い物にならなかったりするし。
- 467 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 12:02:47.87 ]
- >>466
その無駄な複雑性はJavaの悪いところだし ORACLEが無能だからだろうな
- 468 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 13:39:18.89 ]
- 継承や委譲を使うべきところまでPOJOがどうのこうのとアノテーションだらけにする
無能な糞フレームワークがあるな。S2なんとかーだけど。
- 469 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 13:55:01.70 ]
- 自分も Hibernate より MyBatis のほうが好きなタイプだが、
Hibernate は嫌われるのに、Rails の ActiveRecord がみんなに受け入れられているのはなぜだろう? 両方とも似たようなタイプなのに
|

|