How to insert a block of html into a java servlet [duplicate]
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&up_kml_url=https%3A%2F%2Fwebfiles.colorado.edu%2Fwww%2FLSF%2520DB%2520Placemarks5.kmz&up_tour_index=1&up_tour_autoplay=1&up_show_navcontrols=1&up_show_buildings=1&up_show_terrain=1&up_show_roads=0&up_show_borders=1&up_sphere=earth&synd=open&w=700&h=600&title=Embedded+Tour+Player&border=http%3A%2F%2Fwww.gmodules.com%2Fig%2Fimages%2F&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 theresponse
object that you receive as parameter in thedoGet()
methodeverything 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&up_kml_url=https%3A%2F%2Fwebfiles.colorado.edu%2Fwww%2FLSF%2520DB%2520Placemarks5.kmz&up_tour_index=1&up_tour_autoplay=1&up_show_navcontrols=1&up_show_buildings=1&up_show_terrain=1&up_show_roads=0&up_show_borders=1&up_sphere=earth&synd=open&w=700&h=600&title=Embedded+Tour+Player&border=http%3A%2F%2Fwww.gmodules.com%2Fig%2Fimages%2F&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>");
精彩评论