com.velocity.servlet

package com.velocity.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.view.servlet.VelocityViewServlet;

import com.classpath.www.WebPath;
import com.domain.bean.TmpBean;
import com.ulitis.www.JUtils;


public class CustomerVelocityServlet extends VelocityViewServlet{

    
    //设置返回视图为text/html编码为gbk
    @Override
    protected void setContentType(HttpServletRequest request,
            HttpServletResponse response) {
        response.setHeader("Pragma","No-cache"); 
        response.setHeader("Cache-Control","no-cache"); 
        response.setDateHeader("Expires", 0); 
        String referer = request.getHeader("referer");
        if(referer == null){
            try {
                response.sendRedirect(request.getContextPath() + "/index.jsp");
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }
            return;
        }
        response.setContentType("text/html;charset=UTF-8");
    }
    
    //处理请求
    @Override
    protected Template handleRequest(HttpServletRequest request,
            HttpServletResponse response, Context ctx) throws Exception {
        
        LinkedHashMap<String,String> map = new LinkedHashMap<String,String>();
        TmpBean tpb = (TmpBean)request.getSession().getAttribute("tpb");
        map=(LinkedHashMap<String, String>) tpb.getVarMap();
        for (Map.Entry<String, String> entry : map.entrySet()){
            String key = entry.getKey();
            String value = entry.getValue();
             ctx.put(key, value);
        }
        
       // String filename = WebPath.getAbsolutePathWithWebProject(request)+"WEB-INF\inputfile\specLayout.txt";
        String filename = WebPath.getAbsolutePathWithWebProject(request)+"WEB-INF\vminclude\specLayout.txt";
        JUtils.write(filename, tpb.getMscript());
       
        //调用父类的方法getTemplate()
        return getTemplate("demo.vm", "UTF-8");
    }
    
}
原文地址:https://www.cnblogs.com/MarchThree/p/3655506.html