1. 程式人生 > 其它 >org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest異常解決

org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest異常解決

JSP四大域物件

  1. pageContext
    當前jsp頁面範圍內有效
  2. request
    一次請求內有效
  3. session
    一次會話範圍內有效,也就是開啟瀏覽器訪問伺服器到關閉瀏覽器
  4. application
    整個Web工程內有效

作用範圍

建立一個four.jsp工程

<!-- 四大域的作用範圍 -->
	<%
		pageContext.setAttribute("key", "pageContext");
		request.setAttribute("key", "request");
		session.
setAttribute("key", "session"); application.setAttribute("key", "application"); %> // 1. pageContext 當前jsp頁面範圍內有效 pageContext -> <%=pageContext.getAttribute("key") %><br/> // 2. request 一次請求內有效 request -> <%=request.getAttribute
("key") %><br/> // 3. session 一次會話範圍內有效(開啟瀏覽器訪問伺服器,直到瀏覽器關閉) session -> <%=session.getAttribute("key") %><br/> // 4. application 整個web工程內有效 --> application -> <%=application.getAttribute("key") %>

當前JSP啟動之後
在這裡插入圖片描述
讓pageContext失效,也就是離開當前頁面,那我們只需要把這次請求轉發到另外一個頁面。

	// 轉發請求 
	<% request.getRequestDispatcher("/jspinit/fourDemo.jsp").forward(request, response); %>

然後再建立一個fourDemo.jsp工程

	//1. pageContext 當前jsp頁面範圍內有效
	pageContext -> <%=pageContext.getAttribute("key") %><br/>
	//2. request	一次請求內有效
	request -> <%=request.getAttribute("key") %><br/>
	//3.session 一次會話範圍內有效
	session -> <%=session.getAttribute("key") %><br/>
	//4. application 整個web工程內有效
	application -> <%=application.getAttribute("key") %>

請求轉發之後,已經轉向了另外一個頁面,也就代表著pageContext的值已經失效,結果為null;(因為由four.jsp轉發至fourDemo.jsp屬於一次請求,所以request的值還有效)
在這裡插入圖片描述
request的作用範圍是一次請求有效,我們直接訪問fourDemo.jsp時,已經不屬於一次請求,測試發現,request對應的key值已經為null。
在這裡插入圖片描述
session的作用範圍是一次會話範圍內有效,而我們只需要關閉瀏覽器,再啟動就能得到結果
在這裡插入圖片描述
application的作用範圍是整個web工程,所以想讓applicable失效,我們需要重啟伺服器,再直接訪問fourDemo.jsp,就能發現
在這裡插入圖片描述
所以它們的作用範圍關係
pageContext < requset < session < application