K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[2098] 第7章のTIPSについて
投稿者:くまきち
2018/01/10 22:11:30

『基礎からのWebアプリケーション開発入門』のP.235からのTipsについて質問させてください。 P.238 リスト7-1 25行目 >out.print((char)(ch & 0xffff)); "& 0xffff"は何をしているのでしょうか?不要な制御情報を削除するなどの用途があるのでしょうか? P.241 リスト7-3 36行目 dataOutを多次元配列として定義している理由がよく分かりませんでした。 一次元配列でも参照型変数となるので、呼び出され側で値を詰めることができるように思います。 P.245 7.3 画像を動的に生成する ><img src="http://localhost:8080/generateimage/GenerateImage"/> ><image>タグは、それが記載されているHTMLとはまったく無関係のドメインからでも・・・」 とありますが、例えばP.226の補足に記載されているような最新投稿を表示するようなパーツが、 仮にテキストなどでは無く画像で最新記事を返す形式だったら、XMLHttpRequestとか同一オリジンポリシーなど 考えなくても良いということでしょうか? なんとなく、いろいろセキュリティ対策しているけど、抜け道はいろいろありそうな気がしてしまいます。 P.248 注3 csvダウンロードできませんでした。リンクを、 ><a href="/generatecsv/GenerateCSV">CSVダウンロード</a> とすると失敗しましたが、下記のようにすると成功しました(IE、Crome、Firefoxで実施)。 ><a href="http://localhost:8080/generatecsv/GenerateCSV">CSVダウンロード</a> P.249 リスト7-8 5行目 下記が誤りのように思います。  誤:"http://localhost/downloadtest/file.mp4;  正:"http://localhost/downloadtest/file.mp4";
[この投稿を含むスレッドを表示] [この投稿を削除]
[2099] Re:第7章のTIPSについて
投稿者:(ぱ)こと管理人
2018/01/11 00:14:06

>>out.print((char)(ch & 0xffff)); > >"& 0xffff"は何をしているのでしょうか?不要な制御情報を削除するなどの >用途があるのでしょうか? ここではint型のchをcharにキャストしているので、結果がcharの 範囲に収まるよう、0xffffとの&を取っています。 まあ、この場合、直前のif文で負でない保証がされていますし、 InputStreamReader#read()の戻り値なので、あまり気にする必要は ないのかもしれませんが。 >P.241 リスト7-3 36行目 >dataOutを多次元配列として定義している理由がよく分かりませんでした。 >一次元配列でも参照型変数となるので、呼び出され側で値を詰めることができるように >思います。 1次元配列を上位でnewして渡し、呼び出され側で値を詰めてもらう、 ということはできますが、その場合、newするには呼び出し側でサイズが わかっている必要があります。ここでは、呼び出し側ではサイズがわからないので、 呼び出され側でnewした配列を参照型変数に格納して返すには、 配列の配列(2次元配列)が必要になります。 >とありますが、例えばP.226の補足に記載されているような最新投稿を表示する >ようなパーツが、 >仮にテキストなどでは無く画像で最新記事を返す形式だったら、 >XMLHttpRequestとか同一オリジンポリシーなど >考えなくても良いということでしょうか? そうなりますね。(JSONPだってその意味では抜け穴ですが) 現状、例えば怪しいサイトのHTMLが社内イントラの画像をimgタグで抜き取ったとして、 それを怪しいサーバに送ろうとするとHTML5のCanvasを使わなければならず(たぶん)、 そちらでは別のオリジンから持ってきた画像はデータ化したりできないようにする等 対策はされていると思いますけれども。 >P.248 注3 >csvダウンロードできませんでした。リンクを、 > >><a href="/generatecsv/GenerateCSV">CSVダウンロード</a> HTMLファイルはどこに置きましたか? ここでは、 C:\Tomcat8\webapps\generatecsv\test.html のような場所に置いてあることを想定しています。 実際にアプリケーションを開発する際も、HTMLなりJSPなりを GenerateCSVと同じTomcatでホストしていれば、/generatecsv/GenerateCSVで 見えると思います。 >P.249 リスト7-8 5行目 >下記が誤りのように思います。 > 誤:"http://localhost/downloadtest/file.mp4; > 正:"http://localhost/downloadtest/file.mp4"; 申し訳ありません。これは間違いですね。 正誤表に載せておきます。
[この投稿を含むスレッドを表示] [この投稿を削除]
[2100] Re:第7章のTIPSについて
投稿者:くまきち
2018/01/14 06:38:59

ご回答頂き、ありがとうございました。 ただ、CSVダウンロードだけは、まさに >C:\Tomcat8\webapps\generatecsv\test.html に置いていたのですがダウンロードできませんでした。。 HTTPから指定するのが正式だと思うので、とりあえず気にしないことにしました! >>>out.print((char)(ch & 0xffff)); >> >>"& 0xffff"は何をしているのでしょうか?不要な制御情報を削除するなどの >>用途があるのでしょうか? > >ここではint型のchをcharにキャストしているので、結果がcharの >範囲に収まるよう、0xffffとの&を取っています。 >まあ、この場合、直前のif文で負でない保証がされていますし、 >InputStreamReader#read()の戻り値なので、あまり気にする必要は >ないのかもしれませんが。 > >>P.241 リスト7-3 36行目 >>dataOutを多次元配列として定義している理由がよく分かりませんでした。 >>一次元配列でも参照型変数となるので、呼び出され側で値を詰めることができるように >>思います。 > >1次元配列を上位でnewして渡し、呼び出され側で値を詰めてもらう、 >ということはできますが、その場合、newするには呼び出し側でサイズが >わかっている必要があります。ここでは、呼び出し側ではサイズがわからないので、 >呼び出され側でnewした配列を参照型変数に格納して返すには、 >配列の配列(2次元配列)が必要になります。 > >>とありますが、例えばP.226の補足に記載されているような最新投稿を表示する >>ようなパーツが、 >>仮にテキストなどでは無く画像で最新記事を返す形式だったら、 >>XMLHttpRequestとか同一オリジンポリシーなど >>考えなくても良いということでしょうか? > >そうなりますね。(JSONPだってその意味では抜け穴ですが) >現状、例えば怪しいサイトのHTMLが社内イントラの画像をimgタグで抜き取ったとして、 >それを怪しいサーバに送ろうとするとHTML5のCanvasを使わなければならず(たぶん)、 >そちらでは別のオリジンから持ってきた画像はデータ化したりできないようにする等 >対策はされていると思いますけれども。 > >>P.248 注3 >>csvダウンロードできませんでした。リンクを、 >> >>><a href="/generatecsv/GenerateCSV">CSVダウンロード</a> > >HTMLファイルはどこに置きましたか? >ここでは、 >C:\Tomcat8\webapps\generatecsv\test.html >のような場所に置いてあることを想定しています。 > >実際にアプリケーションを開発する際も、HTMLなりJSPなりを >GenerateCSVと同じTomcatでホストしていれば、/generatecsv/GenerateCSVで >見えると思います。 > >>P.249 リスト7-8 5行目 >>下記が誤りのように思います。 >> 誤:"http://localhost/downloadtest/file.mp4; >> 正:"http://localhost/downloadtest/file.mp4"; > >申し訳ありません。これは間違いですね。 >正誤表に載せておきます。 >
[この投稿を含むスレッドを表示] [この投稿を削除]
[2101] Re:第7章のTIPSについて
投稿者:(ぱ)こと管理人
2018/01/18 00:41:05

>ただ、CSVダウンロードだけは、まさに >>C:\Tomcat8\webapps\generatecsv\test.html >に置いていたのですがダウンロードできませんでした。。 >HTTPから指定するのが正式だと思うので、とりあえず気にしないことにしました! 念のため確認ですが、test.htmlをそこに置いたというのはよいとして、 参照はどのようにしましたか? http://localhost:8080/generatecsv/test.html として参照すればダウンロードできると思うのですが、 もし、HTMLファイルをダブルクリックして開いていたらできませんので、 一応確認です……
[この投稿を含むスレッドを表示] [この投稿を削除]
[2102] Re:第7章のTIPSについて
投稿者:くまきち
2018/01/23 23:36:21

確かに。。 >http://localhost:8080/generatecsv/test.html のように指定すればダウンロードできました。 お騒がせしました! >>ただ、CSVダウンロードだけは、まさに >>>C:\Tomcat8\webapps\generatecsv\test.html >>に置いていたのですがダウンロードできませんでした。。 >>HTTPから指定するのが正式だと思うので、とりあえず気にしないことにしました! > >念のため確認ですが、test.htmlをそこに置いたというのはよいとして、 >参照はどのようにしましたか? > >http://localhost:8080/generatecsv/test.html > >として参照すればダウンロードできると思うのですが、 >もし、HTMLファイルをダブルクリックして開いていたらできませんので、 >一応確認です…… >
[この投稿を含むスレッドを表示] [この投稿を削除]