⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 locationservlet.java

📁 JSP高级程序员网络开发源代码
💻 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 + -