0

このサイトのコンテンツにアクセスする方法を考えています: https://handbook.unimelb.edu.au/

ブラウザーを介して手動で検索を実行できます。また、HTTP ライブ ヘッダーを介して生の http 要求を追跡していますが、システムが実際に検索をどのように実行しているかを突き止めるには無限の問題があります。

特に、https ://handbook.unimelb.edu.au/faces/htdocs/user/search/AdvancedSearch.jsp による高度な検索を使用します。

次のようなデータが送信されます。 POST /faces/htdocs/user/search/AdvancedSearch.jsp HTTP/1.1 AdvancedSearchForm%3Akeywords=&AdvancedSearchForm%3ACourseOrSubjectSelection=SUBJECT_ALL&AdvancedSearchForm%3AGraduateLevelSelection=POSTGRADUATE_ALL&AdvancedSearchForm%3AfacultyList=&AdvancedSearchForm%3AdepartmentList=&AdvancedSearchForm%3Alevel=ALL&AdvancedSearchForm%3Asemester=ALL&AdvancedSearchForm%3AallStudyAreas=t&oracle.adf.faces.FORM=AdvancedSearchForm&oracle.adf.faces.STATE_TOKEN=_id51018%3A_id51019&source=AdvancedSearchForm%3AsearchButton

サーバーはすぐに「HTTP/1.1 302 Moved Temporarily」で応答し、「Location: https://handbook.unimelb.edu.au/faces/htdocs/user/search/SearchResults.jsp」にリダイレクトします。

実際に検索結果を表示します。

私が知る限り、検索自体はセッションを使用して、投稿とその後の取得の間に検索対象の用語を保存する必要があります。

これは通常の JSF の動作ですか? そのようなシステムにアクセスするためのトリックはありますか?

4

1 に答える 1

1

これは通常のJSFの動作ですか?

この動作は「正常」ではありません。ただし、このアプローチは、レガシーJSF1.xアプリケーションでは説明できます。これは、GETフォームがJSF1.xでネイティブにサポートされていなかったためです。ただし、このアプローチはかなり貧弱な設計であると考えており、<managed-property>GET要求パラメーターを挿入するために使用することをお勧めします。Webアプリのアーキテクト/開発者は、おそらくそれをあまりよく考えていません。すでに3年余りでリリースされているJSF2.0以降、新しいタグ<form>のおかげで、プレーンHTMLを使用したGETフォームがネイティブにサポートされていることに注意してください。<f:viewParam>


そのようなシステムにアクセスするためのトリックはありますか?

HTTPクライアントにセッションを維持するように指示し(Cookieを読み取ります)、リダイレクトを自動フォローします。デフォルトでは、JSFはビューステートもそこに格納するため、すでにセッションに大きく依存しています。これは、そのWebアプリの設計方法とは関係ありません。

参照:

于 2012-12-27T13:43:32.990 に答える