Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问已启用的js“;链接“;通过curl/raw http从JSF页面_Http_Jsf_Session_Curl - Fatal编程技术网

访问已启用的js“;链接“;通过curl/raw http从JSF页面

访问已启用的js“;链接“;通过curl/raw http从JSF页面,http,jsf,session,curl,Http,Jsf,Session,Curl,我正在尝试了解如何访问此网站上的内容: 我可以通过浏览器手动执行搜索,并且通过http live头跟踪原始http请求,但在确定系统实际如何执行搜索时遇到了无数问题 特别是,通过以下方式使用高级搜索: 发送的数据类似于以下内容: POST/faces/htdocs/user/search/AdvancedSearch.jsp HTTP/1.1 AdvancedSearchForm%3Akeywords=&AdvancedSearchForm%3ACourseOrSubjectSelection

我正在尝试了解如何访问此网站上的内容:

我可以通过浏览器手动执行搜索,并且通过http live头跟踪原始http请求,但在确定系统实际如何执行搜索时遇到了无数问题

特别是,通过以下方式使用高级搜索:

发送的数据类似于以下内容:

POST/faces/htdocs/user/search/AdvancedSearch.jsp HTTP/1.1
AdvancedSearchForm%3Akeywords=&AdvancedSearchForm%3ACourseOrSubjectSelection=SUBJECT\u ALL&AdvancedSearchForm%3AGraduateLevelSelection=研究生\u ALL&AdvancedSearchForm%3AfacultyList=&AdvancedSearchForm%3Alevel=ALL&AdvancedSearchForm%3alStudyAreas=t&oracle.adf.faces.FORM=AdvancedSearchForm&oracle.adf.faces.STATE\u TOKEN=\u id51018%3A\u id51019&source=AdvancedSearchForm%3AsearchButton

服务器立即响应“HTTP/1.1 302临时移动”,并将我重定向到“位置:”

这实际上显示了搜索结果

据我所知,搜索本身必须使用一个会话来存储post和后续get之间搜索到的术语

这是正常的JSF行为吗? 访问这样一个系统有什么诀窍吗

这是正常的JSF行为吗

这种行为不“正常”。然而,这种方法对于遗留的JSF1.x应用程序是可以解释的;这是因为JSF1.x不支持GET表单。但是,我认为这种方法的设计很差,建议使用<代码> <代码>来注入get请求参数。webapp架构师/开发人员很可能没有很好地考虑到这一点。请注意,由于JSF2.0已经推出了3年多一点,由于新的
标记,使用纯HTML的GET表单在本机上得到了支持


访问这样一个系统有什么诀窍吗

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

另见:
  • -关于如何以编程方式正确提交基于JSF的表单的相关答案

您的分析看起来是正确的;JSF的默认表单组件通常依赖POST进行数据提交,但不需要在JSF中以这种方式实现。该网站的实现者没有以生成可书签链接的方式编写应用程序。