[英]Servlet to Servlet Communication
我正在制作Java Web應用程序,但我是Java的新手。
我有一個Servlet(/ locatemodules),它試圖在服務器(/ modules / *)中找到其他servlet,目前該servlet會找到其他servlet的名稱(/ modules / logout,/ modules / invoice等),但是我需要獲取一些屬性並調用發現的servlet的方法,所有servlet中的屬性和方法都相同。
調用方式如下: discoveredServlet.getMenuItem();
getMenuItem返回一些值,menuName,menuUrl,sideMenu [],sideUrl []等,以使Web應用程序具有動態顯示的菜單項,發現的servlet具有在主菜單上調用時獲取的信息。
我找到了Servlet間通信文章,但很不幸地不適用於API 2.2和更高版本。
如何獲得這樣的解決方案?
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Loaded extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/plain");
PrintWriter out = res.getWriter();
ServletContext context = getServletContext();
Enumeration names = context.getServletNames();
while (names.hasMoreElements()) {
String name = (String)names.nextElement();
Servlet servlet = context.getServlet(name);
out.println("Servlet name: " + name);
out.println("Servlet class: " + servlet.getClass().getName());
out.println("Servlet info: " + servlet.getServletInfo());
out.println();
}
}
}
Servlet是應該在服務器上接受請求並對其進行響應的類。
在制作HTTPServlet時,它應該通過諸如get
和post
類的http方法接受一個HTTP請求(因此,您在servlet中獲得了doGet()
和doPost()
方法),然后servlet處理該請求並發送http響應。
如果要在服務器之間進行通信,則應使用setAttribute()
方法設置一些屬性,然后redirect
(使用response.sendRedirect())或將請求轉發到另一個servlet,並使用getAttribute()
方法接收值。
Servlet不是像普通的類那樣使用,而是要使Servlet類成為對象並調用其方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.