2017-06-20 21 views
0

我是新來的java和我有servlet連接到某個系統並獲取數據,同時調試代碼,我看到我能夠連接並獲取數據,(我沒有得到任何錯誤)。我使用下面的代碼:JAVA - 從系統獲取響應到用戶界面

try { 
      urlConnection.connect(); 
     } catch (IOException e) { 
      String messagePrefix = "Connection error: "; 
      LOGGER.error(messagePrefix, e); 
     } 


OutputStream clientOutStream = responseToClient.getOutputStream(); 
    copyStream(backendInStream, clientOutStream); 
    responseToClient.setStatus(backendResponseCode); 

int backendResponseCode = urlConnection.getResponseCode(); 

InputStream backendInStream = null; 
     try { 
      if (backendResponseCode < 400) { 
       backendInStream = urlConnection.getInputStream(); 
      } 
     } catch (IOException e) { 
      String messagePrefix = "Input stream error: "; 
      LOGGER.error(messagePrefix, e); 
     } 

現在我有這個簡單的index.html和我的問題,我應該如何打印數據返回給瀏覽器?

(我不是能到HTML文件複製爲代碼:(

enter image description here

任何想法如何傳遞到用戶界面的響應,我嘗試添加響應標籤,並把變量作爲全球無成功...

+0

使用JSP來顯示輸出 – Vihar

回答

1

是的,你可以通過調度員或HttpSession中,並使用jsp讓你的後端在UI

響應

發送響應簡單地使用

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

       HttpSession session = request.getSession(); 

    session.setAttribute("backendresponse",backendresponse)) 


} 

,並在你的JSP你可以在一個ArrayList數據存儲爲

<% 
ArrayList<> list=(ArrayList<>)session.getAttribute("backendresponse"); 


%> 

現在你可以使用這個列表中使用<%的任何標記填充數據=%>,因爲這是相當於任何表情說

<%for(int i=0;i<list.size();i++) 
{%> 
    <%=list.get(i).getData() %> 
<%}%> 

將打印響應在瀏覽器

print語句10

UPDATE

在servlet

你可以得到的參數

String url=request.getParameter("url") 
    Class obj=new Class(url) 
    session.setAttribute("obj",obj); 
response.sendredirect("disp.jsp") 

disp.jsp

<% 
    ArrayList<> list=(ArrayList<>)session.getAttribute("backendresponse"); 


    %> 
<html> 
<head> 
</head> 
<body> 
    <%for(int i=0;i<list.size();i++) 
    {%> 
     <h1> <%=list.get(i).getData() %></h1> 
    <%}%> 
</body> 
</html> 
+0

謝謝,我沒有jsp頁面應該創建一個嗎?我只有index.html打開窗體,用戶可以輸入數據...如果我需要創建在哪裏shuld我這樣做?在webapp文件夾下? –

+0

是的,你可以在webContent文件夾中創建jsp,並將你的html代碼複製到該jsp –

+0

好吧,但是這是一個mvn項目,我沒有在src-> main-> webapp下的webcontent文件夾,只是webapp,所以我應該把它放在哪裏? –

0

你應該擁有的PrintWriter以每行doGet方法的HTML:

public void doGet(HttpServletRequest request, 
    HttpServletResponse response) throws IOException, ServletException 
{ 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    out.println("<html>"); 
    out.println("<head>"); 
    . 
    . 
    . 
} 
+0

我應該在哪裏放置系統中的數據?看我的代碼 –

+0

你的類是否擴展了'HttpServlet'? 請參考[鏈接](https://www.javatpoint.com/steps-to-create-a-servlet-using-tomcat-server) –