• 締切済み

ServletからXMLを読み込む方法

こんにちわ。 JSPからGETで受け取ったデータと、ローカルXMLファイルのデータの画面表示をサーブレットを使って行いたいと思っています。 このとき、XMLファイルからのデータ取得方法が分かりません。 普通のJavaであればDOMとしてXMLを操作したことがあるのですが、サーブレットの場合、違ってくるのでしょうか。 簡単な例等を教えていただけると嬉しいです。 お手数ですが、お分かりになる方、どうぞご教授くださいませ。

  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

noname#45950
noname#45950
回答No.1

サーバーから、ローカルのファイルをローカルユーザーのアクションなしに読み書きは出来ません(出来ちゃったら、ハッキングなので ^^;) ですので、HTMLのinput type=fileで、該当のファイルをローカルユーザーに指定してもらい、それをPOSTで受け取って、サーバー側でDOMで処理するという流れになると思います。 よって、 >JSPからGETで受け取ったデータと、 この両立はたぶん無理ですね。 POSTでやることになります。

関連するQ&A

  • JAVAとXMLでメンバー管理をしたいです。

    こんにちは。よろしくお願いします。 さて表題の通りですが、JSPの画面から 1MXLからメンバー情報を取得することでメンバー一覧の表示 2メンバーの追加→メンバー情報のXMLにノードを追加して保存 3↑と同様にメンバーの削除処理 ここで、1のJSPからXMLを読み込むことはできたのですが、サーバーサイドへのXMLへの書き込み、更新処理ができません。 セキュリティ上できないのでしょうか? できればjavaで操作するDOMで作成したいと思っております。 どなたかアドバイスを頂ければ幸いです。よろしくお願いいたします。

  • jspでXMLファイルの読み書きは?

    JavaのJSPで、XMLファイルを読み書きしたいと思っております。 サーブレットでは、「import javax.xml.parsers.*;」などを読み込んで処理してますが、 JSPでも、同じように Import してやればよいのでしょうか? また、JSPでも、「Try~catch 」のようなことは、できるのでしょうか? PHPでは、「simplexml_load_file」を使っていました。 Javaには、詳しくないので、お分かりになる方がいらっしゃいましたら、お教えください。

    • ベストアンサー
    • Java
  • jsp,servlet,beanの流れについて

    初歩の初歩の質問ですが、参考書等読んでいて混乱してしまっています。宜しくお願いします。 a.jsp(入力画面) a_servlet.java a_bean.java(setのみ) b.jsp(表示画面) b_servlet.java b_bean.java(get,setのみ) というファイルがある時のプログラムの流れは、 (1)a.jsp・・・画面を表示する。データを入力する。登録ボタンを押下する。 (2)a_servlet.java・・・(1)で登録ボタンを押下されたら、a.jspのデータを取得。a_bean.javaへ設定する。b.jspへ飛ぶ。 (3)a_bean.java・・・(2)によりデータが設定されている。 (4)b_servlet.java・・・a_bean.javaのデータを取得し、b_bean.javaに設定する。 (5)b_bean.java・・・(4)によりデータが設定されている。 (6)b.jsp・・・表示データをb_bean.javaより取得後、画面を表示する。削除ボタンを押下する。 (7)b_servlet.java・・・(6)で削除ボタンが押下されたらb.jspのデータを取得し、b_bean.javaへ設定する。 特にbファイルの処理順序で混乱しています。 上記のような流れで考え方は合っているでしょうか。 少々分かりずらいかもしれませんが、間違っていたら小学生でも分かるように教えてください。

    • ベストアンサー
    • Java
  • JavaでXMLをファイルからじゃなく扱いたい

    Javaで例えば、String変数に String str = "<xml sample>hogehoge</xml sample>" みたいにXML形式のデータが入っているとして、このデータを、XMLファイルをDOMで扱う時のように扱えないでしょうか?一度、ファイルに書きだして、XMLファイルとして読み込ませないと難しいでしょうか?

    • ベストアンサー
    • Java
  • JSP、Servlet、設計について

    今回Webアプリの設計を行っていますが、そこで発生した疑問について質問させて頂きます。 このアプリは、大きく分けてログイン画面とメイン画面の二つがあり、各メイン画面ではフレーム部分と内側の部分が存在し、各メイン画面のフレーム部分のデザインは統一したいと思っています。 また、出来るだけMVCモデルを守り、スプリクトレットはできる限り用いず、カスタムタグは使用せず、JavaとServletが理解できれば全体が把握できるような形にしたいと思っています。 ○疑問1 メイン画面のデザインを統一させるためにどのような流れにするか? ・案1 サーブレット、フレーム部分のjsp、内側のjspのファイル、この3つをメイン画面の各機能分作る。 サーブレットで要求を受け、フレーム部分jspにフォワードし、フレーム部分jspから内側jspをインクルードする。 ・案2 サーブレット、フレーム部分のjsp、フレームからインクルードするファイルを決める分岐用サーブレット、この3つを一つづつ作り、内側のjspファイルを各機能分作る。 サーブレットで要求を受け、フレーム部分jspにフォワードし、フレーム部分jspから分岐用サーブレットをインクルードし、分岐用サーブレットから内側jspをインクルードする。 ・考察 案2では、フレーム部分jspを一つに限定できるのでそちらのほうが良いように思えますが、流れが若干複雑になります。案1ではシンプルですが、フレーム部分jspファイルが複数できてしまいます。 機能によっては、サーブレットとJSPがお互いを呼び出すような事が5回ぐらいネストされると思います。 このようなやり方が普通なのか、判断できません。 ○疑問2 ログイン情報を用いた動的メニューを、メイン画面で共通のフレームに追加したい。 ・案1 ViewHelperパターン?のような形にする 一例 <jsp:useBean id="menu" scope="request" class="MenuBean" /> <%= menu.getMenu() %> サーブレットでMenuBeanにログイン情報を設定し、JSPからメニューのHTMLを構成したStringを返してもらう。 ・案2 Servletにする <jsp:include page="MenuServlet" /> JSPからインクルードされたMenuサーブレットで、ログイン情報を取得してメニューのHTMLを構成し、out.printlnする。 ・考察 案1はサーブレットでMenuを作成しなくてはならず、一つ手間が増える。案2は、コントローラであるはずのServletでout.printlnしなくてはならないので何か違和感がある。(他のサーブレットでは、out.printlnする箇所は全くない) どちらが良いのか、または別の方法があるのか。 Servletで実現できるならViewHelperの用途とは何か? よろしくお願い致します。

  • DOMでパースしているXML全体の出力方法

    お世話になります。 JavaでDOMを使ってXML操作をしたいと考えております。 おおよそ、以下のソースでparseできるところまで確認できました。 DOMParser parser = new DOMParser(); parser.parse("XMLファイルパス"); Document doc = parser.getDocument(); 開発中なので、DOM操作した結果のXMLを随時コンソールやログに 出力させたいのですが、たとえばdoc.toString()してもnullとなり、 正常に出力されません。 以下のようにElementを取得すると正常にアクセスできていることは 確認しています。 Element rootEl = doc.getDocumentElement(); System.out.println(rootEl.getNodeName()); なお、DOMライブラリにはxercesを用いております。 Dom4jのAPIも見てみましたが、それらしいメソッドを見つけることが できていません。 簡単にXMLを出力できることが理想です。 一般的な方法、よくやる手法など、みなさんよりご教示頂きたいです。

    • ベストアンサー
    • Java
  • JavaからXMLプロセッサを使うとは?

    JavaでXMLを処理する必要に駆られまして、一念発起して勉強しています。 XMLを処理するためには、JavaのAPIがあってそれを利用するというのはokで、処理方法にはDOM・SAX・XSLTといったものがあるというのもわかりました。 ただ、DOMやSAXが、Javaプログラムからデータを読む手助けをするためのモノというのはわかるのですが、XSLTはただの変換とどう違うのでしょうか? 本を読む限り、XSLの規則にしたがって変換するもの。となっていて、読み込ませる→変換結果が出てくる、で、なんだかHTMLの生成くらいにしか使えないような印象なのですが、Javaとタッグを組んでデータを処理させたい場合、どんな使われ方をするのでしょうか。 DOMやSAXでも良いじゃんと言われそうなのですが、HTMLも同時に扱う必要があるため、ぜひ習得したいのです。 ですが、市販のJava本はほとんどXMLパーサ関係ばかりで・・・。また、何かいい参考書もあったら教えていただきたいと思います。

    • ベストアンサー
    • Java
  • VBAのXML処理でメモリが足りない?

    Excel2003のVBAでMSXML2.DomDocumentを使ってXMLの処理をしています。http経由でXMLを取得し、パースして、Sheetに書き込んでいます。 XMLの行数が少ないうちは問題ないのですが、行数が1600件を超えたあたりで、LoadXML()メソッドで落ちます。 XMLを分割して、500行ずつや100行ずつLoadXMLさせても、合計処理数が1600行あたりで、必ずLoadXML()に失敗します。 メモリ不足かと思って、ループするごごとにSet Dom = Nothingのようにしてオブジェクトをクリアしていますが、効果がありません。 処理させたいXMLは最大で8000行になります。 なんとか解決策はないでしょうか? 以下、ソースの一部です。 Dim Dom As New MSXML2.DOMDocument Function get_xml_dom(query) Dim MSX As Object Set Dom = New MSXML2.DOMDocument Dim Url As String host_address = "hostname" host_path = "/keyword_report/get_keyword_data" Url = "http://" & host_address & host_path & query Set MSX = CreateObject("MSXML2.XMLHTTP") MSX.Open "GET", Url, False MSX.Send If Dom.LoadXML(MSX.responseText) Then '<- 1600件ぐらい処理させるとここで落ちる Debug.Print "Load XML is True" get_xml_dom = True Else get_xml_dom = False Debug.Print "Load XML is False" End If Set MSX = Nothing End Function このあと、DomからXPATHで要素を取り出して、シートに埋め込んでいます。

  • HTTPステータス 404 - /servlet/Testについて

    はじめまして。Javaの初心者です。 どうしてもわからないことがあります。それは、 最初にJSPページでHTMLフォームにデータを入力して <input type="submit"/>タグでサーブレットに送信し て、サーブレットでHTMLフォームのデータ を使用して処理を行わせてから再び最初のJSPページ にリクエストを転送(forward)すると、サーブレット での処理結果が表示されるのですが、そのあと再び HTMLフォームにデータを入力して <input type="submit"/>タグでサーブレットに送信す ると、「HTTPステータス 404 -/servlet/Test」などと 表示され、サーブレットが利用可能でなくなります。 なぜなのでしょうか?どのようにしたら解決できるの かどうか教えてください。お願いします。

    • ベストアンサー
    • Java
  • JSPからサーブレットへ、またJSPへ

    JSPで入力した項目をJAVAサーブレットでXMLに書き込んで XMLのデータをJSPに送るプログラムを作っています。 作成してはテストして改良するを続けていたのですが、 JSPからサーブレットへ行くときにJSP→サブレット→JSPと ならなくてはいけないのにJSP→サブレットでとまってしまいます。 <--いつもどおり--> http://localhost:8080/sawashi/jsp/sinki2.jsp          |          |addsinki(XMLへ書き込むサーブレット)          ↓ http://localhost:8080/sawashi/jsp/sinki3.jsp <--今回の件--> http://localhost:8080/sawashi/jsp/sinki2.jsp          |          | http://localhost:8080/sawashi/servlet/addsinki (サーブレットが上記のように出てしまいsinki3.jspへ飛ばない)          ↓× http://localhost:8080/sawashi/jsp/sinki3.jsp バージョンを初期に戻してもなってしまいます。 どなたか教えてもらえませんか。 よろしくお願いいたします。