开发者

How to insert a block of html into a java servlet [duplicate]

This question already has answers here: Generate an HTML Response in a Java Servlet (3 answers) Closed 6 years ago.

I'm messing around with some java source in eclipse for an existing appengine site. I want to get one of the existing pages to show a google earth plugin applet.

I have this little snippet that works in an html file but I cant figure out how to get the servlet to put this into the html that it generates.

I am not really a coder so I need some pretty consice instructions on how to get java to make this work.

<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_HTM开发者_JS百科L);
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));

}


Yet another method would be using Request Dispatcher:

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


I would recommend you to use jsp for view. Use servlet as just controller

See Also

  • Servlet
  • how-to-avoid-java-code-in-jsp-files


If you have a servlet, then the easiest thing that comes to my mind is the following:

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

Essentially:

  • in your servlet you need to get a PrintWriter from the response object that you receive as parameter in the doGet() method

  • everything you print on that PrintWriter will be sent to the browser

Warning: be careful at not messing up what your servlet is already sending to the browser.


After seeing the code you added to your question, I think you can add your snippet after the line

out.write(HtmlConsts.BODY_OPEN);

by adding

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>")


close the scripting code... with %> then you can write anything you want in plain html

and after that open the scripting tag again <%

that should be it


I'm not sure if this is what your looking for. i use this in java EE doPost block. or perhaps u can use this as reference for the equivalent syntax to what your looking for.

    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>");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜