📄 sampleentryservlet.java
字号:
package com.res.webprint.sample;
import javax.servlet.*;
import javax.servlet.http.*;
import org.w3c.dom.*;
import java.io.*;
import java.util.*;
import com.res.webprint.xml.*;
import com.ibm.xml.parser.*;
import com.res.webprint.servlet.*;
import com.res.webprint.base.*;
/**
* <p>Sample Entry Servlet</p>
* <p>This servlet is emulated to call webprint system. The calling routine
* is an example for using this printing system</p>
* <p>Copyright Realesoft (c) 2005</p>
* @version 1.0
*/
public class SampleEntryServlet extends HttpServlet implements PrintConstants {
//调用打印的参照页面样例
private final static String PRINT_PAGE = "/sample.jsp";
//初始化Servlet
public void init() throws ServletException {
super.init();
}
//处理HTTP Get请求
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
//处理HTTP Post请求
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
//处理HTTP Get和Post请求
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
//创建PrintKeyData事例
PrintKeyData keyData = new PrintKeyData();
String formId = request.getParameter(FORM_ID);
//构造xml打印数据
Hashtable params = new Hashtable(20);
for (Enumeration e = request.getParameterNames(); e.hasMoreElements(); )
{
String paraName = (String) e.nextElement();
String parmValue = request.getParameter(paraName);
if (parmValue == null || parmValue.length() == 0)
{
parmValue = "";
}
params.put(paraName, parmValue);
}
//设置打印数据,格式参照Part-4
keyData.setXmlPrintStr(constructXMLFormat(params));
//设置打印页面的相对路径,如 jsp
keyData.setJspPath("jsp");
//设置打印表单ID
keyData.setFormId(request.getParameter(FORM_ID));
//设置Web Server根路径,如http://localhost:8080/webprint
keyData.setWebRootURI("http://localhost:8080/webprint");
//创建PrintState事例
PrintState state = new PrintState(request);
state.setPrintKeyData(keyData);
//调用打印页面
RequestDispatcher rd = getServletContext().getRequestDispatcher(
"/"+keyData.getJspPath()+PRINT_PAGE);
rd.forward(request, response);
}
//释放资源
public void destroy() {
}
//产生xml格式数据
private String constructXMLFormat(Hashtable paramMap) throws IOException
{
if(paramMap == null||paramMap.isEmpty())
return null;
TXDocument xmlDoc = XMLMod.createTXDocument("WEBPRINT");
Element rootNode = xmlDoc.getDocumentElement();
for(Enumeration keys = paramMap.keys();keys.hasMoreElements();)
{
String key = (String)keys.nextElement();
XMLMod.set(rootNode,key,(String)paramMap.get(key));
}
StringWriter wr = new StringWriter();
xmlDoc.toXMLString(wr);
return wr.getBuffer().toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -