📄 locationservlet.java
字号:
/*
* $Id$
*/
package com.jspdev.ajaxdemo.servlet;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.Writer;
import java.util.Properties;
import com.jspdev.ajaxdemo.util.LocationProvider;
/**
* LocationServlet
*
* @author Fengbo Xie (fengbo.xie at gmail.com)
* Everything that has a beginning has an end.
*/
public class LocationServlet extends HttpServlet {
public void init() throws ServletException {
super.init();
Properties p = new Properties();
this.log("initializing velocity...");
try {
p.load(this.getServletContext().
getResourceAsStream("/WEB-INF/classes/velocity.properties"));
Velocity.init(p);
} catch (IOException e) {
throw new ServletException("Error while loading velocity config file" +
" at WEB-INF/classes/velocity.properties", e);
} catch (Exception e) {
throw new ServletException("Error while initializing velocity enginer", e);
}
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
process(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
process(req, resp);
}
private void process(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/xml");
response.setCharacterEncoding("UTF-8");
String province = request.getParameter("province");
LocationProvider lp = new LocationProvider(
this.getServletContext().getResourceAsStream("/WEB-INF/CN.xls"));
VelocityContext context = new VelocityContext();
try {
//放入指定省份查到的城市位置数据到velocity上下文
context.put("locations", lp.listLocations(province));
//得到velocity模板
Template template = Velocity.getTemplate("location.xml.vm");
Writer writer = response.getWriter();
//利用velocity渲染
template.merge(context, writer);
writer.flush();
} catch (Exception e) {
throw new ServletException(e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -