点击批注列表标题反向定位到导航节点

10.1.1  流程
10.1.1.1  点击批注列表标题,链接到BrowseControlServlet
10.1.1.2  在BrowseControlServlet中获取传过来的一系列参数值包括(libId libVersion topicId topicJarUrl等)根据以传进来的参数去调用获取其他参数的方法。比如获取libName ProductVer LibLanguage 最主要的是获取组合连接浏览topic的URL字符串。
10.1.1.3   当属性值都获取完成后,调用导航服务接口的getFirstNaviHtmlSegment(request.getContextPath(),topicBrowseDTO.getLibId,topicBrowseDTO.getLibVersion,msg_open,msg_close)
注:此方法取得一级节点的导航,利用SAX解析事件。获取原Xml节点。然后将原Xml解析成UL LI格式的内容。
10.1.1.4   如果获取值出现异常就跳转到文档包不存在的页面。
10.1.1.5   设置返回参数包括(libId libVersion topicURL libName libLanguage homepage htmlSegment productVer)
10.1.1.6   返回到导航浏览页面。
10.1.1.7   在显示Topic页面内容的iframe的src属性重新链接到TopicBrowseServlet,此Servlet主要是浏览文档包的内容,以流的形式输出Topic页面内容。
10.1.1.8   获取链接完整路径,以及topicId.
注:获取链接完整路径是为了将此路径进行拆分,分别获取FuncEntry(设置功能模块为UA帮助模块) libId libVersion topicLibId  topicLibVersion topicJarURL。将此对象封装到TopicBrowseDTO实体中。
10.1.1.9   调用getResourceStream(int addscript(设置内容输出类型),TopicBrowseDTO topicDTO,String[] keywords, String language, HttpServletRequest request, HttpServletResponse response)
注:在此方法中首先定义topic资源文件输入流,判断如果读出的流不为空就输出到页面。最后关闭流对象。
10.1.1.10   在Js中Ajax异步请求QueryNotesServlet
注:此次进来主要是为了判断当前页面是否添加了批注。如果有就返回为true。没有就返回为false。回到Ajax返回true就调用显示该topic含有批注的图标的函数。在此函数中再次请求QueryNotesServlet此次进来获取所有的批注内容,并返回到显示批注页面。
第一次进到QueryNotesServlet时action传的值是hasNote
第二次进到QueryNotesServlet时action传的值是TocNotes
目的为了区分两次进来的不同操作。

你可能感兴趣的:(Ajax,xml,servlet)