0

我正在尝试了解如何访问此站点上的内容:https ://handbook.unimelb.edu.au/

我可以通过浏览器手动进行搜索,并且我正在通过 HTTP live Headers 跟踪原始 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 临时移动”并将我重定向到“位置:https ://handbook.unimelb.edu.au/faces/htdocs/user/search/SearchResults.jsp ”

这实际上显示了搜索结果。

据我所知,搜索本身必须使用会话来存储帖子和后续获取之间的搜索项。

这是正常的 JSF 行为吗?访问这样的系统有技巧吗?

4

1 回答 1

1

这是正常的 JSF 行为吗?

这种行为不“正常”。然而,这种方法对于遗留 JSF 1.x 应用程序是可以解释的;这是因为 JSF 1.x 本身不支持 GET 表单。然而,我认为这种方法的设计相当糟糕,并建议用于<managed-property>注入 GET 请求参数。webapp 架构师/开发人员很可能没有真正考虑清楚。请注意,自从推出 3 年多一点的 JSF 2.0 以来,由于新标签,原<form>生支持使用纯 HTML 的GET 表单。<f:viewParam>


访问这样的系统有技巧吗?

告诉您的 HTTP 客户端维护会话(读取:cookie)并自动跟踪重定向。默认情况下,JSF 已经严重依赖会话,因为它也在其中存储视图状态。这又与 webapp 的设计方式无关。

也可以看看:

于 2012-12-27T13:43:32.990 回答