2011-03-23 120 views
0

我在Eclipse中爲一個現有的appengine網站搞了一些java源代碼。我想要獲得現有網頁中的一個,以顯示Google地球插件小程序。如何在java servlet中插入一段html代碼

我有這個在html文件中工作的小片段,但我不知道如何讓servlet將它放入它生成的html中。

我不是一個真正的編碼器,所以我需要一些關於如何讓java來完成這項工作的非常有用的指示。

<script src="http://www.gmodules.com/ig/ifr?url=http://code.google.com/apis/kml/embed/tourgadget.xml&amp;up_kml_url=https%3A%2F%2Fwebfiles.colorado.edu%2Fwww%2FLSF%2520DB%2520Placemarks5.kmz&amp;up_tour_index=1&amp;up_tour_autoplay=1&amp;up_show_navcontrols=1&amp;up_show_buildings=1&amp;up_show_terrain=1&amp;up_show_roads=0&amp;up_show_borders=1&amp;up_sphere=earth&amp;synd=open&amp;w=700&amp;h=600&amp;title=Embedded+Tour+Player&amp;border=http%3A%2F%2Fwww.gmodules.com%2Fig%2Fimages%2F&amp;output=js"></script> 

===

protected void beginBasicHtmlResponse(String pageName, String headContent, HttpServletResponse resp, 
     HttpServletRequest req, boolean displayLinks) throws IOException { 
resp.addHeader(HOST_HEADER, getServerURL(req)); 
resp.setContentType(ServletConsts.RESP_TYPE_HTML); 
resp.setCharacterEncoding(ServletConsts.ENCODE_SCHEME); 
PrintWriter out = resp.getWriter(); 
out.write(HtmlConsts.HTML_OPEN); 
out.write("<link rel=\"icon\" type=\"image/png\" href=\"/odk_color.png\">"); 
out.write(HtmlUtil.wrapWithHtmlTags(HtmlConsts.HEAD, headContent + HtmlUtil.wrapWithHtmlTags(
    HtmlConsts.TITLE, BasicConsts.APPLICATION_NAME))); 
out.write(HtmlConsts.BODY_OPEN); 
out.write(HtmlUtil.wrapWithHtmlTags(HtmlConsts.H2, "<FONT COLOR=330066 size=0><img src='/odk_color.png'/>" + HtmlConsts.SPACE + BasicConsts.APPLICATION_NAME) + "</FONT>"); 
if (displayLinks) { 
    UserService userService = UserServiceFactory.getUserService(); 
    out.write(generateNavigationInfo()); 
    out.write(HtmlConsts.TAB + HtmlConsts.TAB); 
    out.write(HtmlUtil.createHref(userService.createLogoutURL("/"), "Log Out from " 
     + userService.getCurrentUser().getNickname())); 
    out.write(HtmlConsts.TAB + "<FONT SIZE=1>" + ServletConsts.VERSION + "</FONT>"); 
} 
out.write(HtmlConsts.LINE_BREAK + HtmlConsts.LINE_BREAK); 
out.write(HtmlUtil.wrapWithHtmlTags(HtmlConsts.H1, pageName)); 

}

+0

您已經確定了代碼。OUPUTS現有的HTML位?如果是這樣,你可以在這裏發佈? – Jaydee 2011-03-23 13:37:24

回答

0

關閉腳本代碼...用%> 那麼您可以在純HTML寫任何你想要的

,之後再次打開腳本標記 <%

這應該是它

+0

你是什麼意思?我在哪裏把這些%>? – m13124 2011-03-23 09:19:18

+0

如果你有一個jsp – MarcoS 2011-03-23 09:47:35

2

如果你有一個servlet,那麼在我腦海中最容易的事是:

public void doGet(HttpServletRequest request, 
        HttpServletResponse response) 
     throws ServletException, IOException { 
    PrintWriter out = response.getWriter(); 
    out.println("put your snippet here"); 
} 

本質:

  • 在你的servlet需要從response對象中獲取PrintWriter對象,該對象將作爲doGet()方法中的參數收到

  • 您對PrintWriter打印的一切都將被髮送到瀏覽器

警告:要小心不搞亂了什麼你的servlet已經發送給瀏覽器。


看到你添加到您問題的代碼後,我覺得你可以行

out.write(HtmlConsts.BODY_OPEN); 

後添加您的片段加入

out.write("<script src="http://www.gmodules.com/ig/ifr?url=http://code.google.com/apis/kml/embed/tourgadget.xml&amp;up_kml_url=https%3A%2F%2Fwebfiles.colorado.edu%2Fwww%2FLSF%2520DB%2520Placemarks5.kmz&amp;up_tour_index=1&amp;up_tour_autoplay=1&amp;up_show_navcontrols=1&amp;up_show_buildings=1&amp;up_show_terrain=1&amp;up_show_roads=0&amp;up_show_borders=1&amp;up_sphere=earth&amp;synd=open&amp;w=700&amp;h=600&amp;title=Embedded+Tour+Player&amp;border=http%3A%2F%2Fwww.gmodules.com%2Fig%2Fimages%2F&amp;output=js"></script>") 
+0

,那麼它就會工作然後我在代碼中通過這個代碼,在servletexception下出現一條紅線,當我嘗試運行它時,沒有什麼不同。另外,在servlet代碼中有一個「保護空白」部分,似乎包含我希望谷歌地球完成的大塊。我將如何插入你的代碼片段? – m13124 2011-03-23 09:12:18

+0

好的:'protected void ...'可能是你的servlet類的一個方法。如果您認爲這就是您需要添加代碼段的地方,那麼在問題中複製'protected void ...'方法可能會很有用:這將使我們能夠更好地幫助您。 – MarcoS 2011-03-23 09:43:33

+0

感謝marco,我發佈了它,你怎麼看? – m13124 2011-03-27 05:18:48

1

我會建議你使用JSP爲查看。使用servlet作爲剛剛控制器

此外

+0

這是個好主意。但是,恐怕我們的朋友m13124目前對模型 - 視圖 - 控制器沒有興趣(他說他不是編碼器)。看起來他只是想修改現有的servlet以快速完成他所需要的任務。 – MarcoS 2011-03-23 09:46:39

0

見我不知道,如果這是你在找什麼。我在java EE doPost塊中使用它。 或者你可以用它作爲你想要的等價語法的參考。

response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 

    out.print("<html>"); 
    out.print("<head>"); 
    out.print("<title>"); 
    out.print("</title>"); 
    out.print("<h1>view accounts</h1>"); 
    out.print("</head>"); 
1

另一種方法將使用請求調度

response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    out.println("Included HTML block:"); 
    request.getRequestDispatcher("/pathToFile/block.html").include(request, response); 
    out.close();