Servlet与FreeMarker调整
Servlet与FreeMarker整合Servlet编写package?com.s2freemarker.exer.web.servlet ????import?java.io.IOE
Servlet与FreeMarker整合
Servlet编写
package?com.s2freemarker.exer.web.servlet; ????import?java.io.IOException; ?? import?java.io.Writer; ?? import?java.util.HashMap; ?? import?java.util.Map; ?? ??import?javax.servlet.ServletException; ?? import?javax.servlet.http.HttpServlet; ?? import?javax.servlet.http.HttpServletRequest; ?? import?javax.servlet.http.HttpServletResponse; ?? ??import?freemarker.template.Configuration; ?? import?freemarker.template.Template; ?? import?freemarker.template.TemplateException; ?? ??public?class?FreemarkerServlet?extends?HttpServlet?{ ?? ??????/** ??????*? ??????*/??????private?static?final?long?serialVersionUID?=?5495454566664178949L; ?? ???? ??????private?Configuration?config; ?? ??????public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response) ?? ????????????throws?ServletException,?IOException?{ ?? ????????this.doPost(request,?response); ?? ????} ???????? ??????public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response) ?? ????????????throws?ServletException,?IOException?{ ?? ???????? ??????????Map<Object?,?Object>?root?=?new?HashMap<Object,Object>(); ?? ????????root.put("message",?"Hello?FreeMarker"); ?? ???????? ??????????Template?t?=?config.getTemplate("test.ftl"); ?? ???????? ??????????response.setContentType("text/html;charset="+t.getEncoding()); ?? ???????? ??????????Writer?out?=?response.getWriter(); ?????????? ??????????try?{ ?? ????????????t.process(root,?out); ??????????}?catch?(TemplateException?e)?{ ?? ????????????throw?new?ServletException("Handle?template?error?!",e); ?? ????????} ??????} ????????/** ??????*?Initialization?of?the?servlet.?<br> ??????* ??????*?@throws?ServletException?if?an?error?occurs ??????*/??????public?void?init()?throws?ServletException?{????????//获得模板上下文???????config?=?new?Configuration(); ????????config.setServletContextForTemplateLoading(getServletContext(),?"WEB-INF\\templates"); ??????} ????}??
ftl 模板编写 test.ftl
?
?
<html> ??????<head><title>FreeMarker</title></head> ??????<body> ??????????${message} ??????</body> ??</html>??