当前位置: 首页 > news >正文

易居做网站/软文推广页面

易居做网站,软文推广页面,网页维护,有专门做几口农机的网站背景: tomcat的jspc编译需要引用ant,而且内部是自己扫描的jsp文件。本人做框架时已经有项目里所有的jsp文件路径,不想引用ant包,因此简化了jspc类。 框架传送门: https://github.com/xiangjiangchuangyuan/struts http…

背景:

tomcat的jspc编译需要引用ant,而且内部是自己扫描的jsp文件。本人做框架时已经有项目里所有的jsp文件路径,不想引用ant包,因此简化了jspc类。

框架传送门:

https://github.com/xiangjiangchuangyuan/struts

https://github.com/xiangjiangchuangyuan/util    --此为工具包

调用:

// 判断线上环境,执行预编译if (jspList.size() > 0 && WebContextUtils.isLinuxOS()) {new JspC(sc, jspList, true).execute();}

具体代码:

package com.xjcy.struts.context;import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.Vector;import javax.servlet.ServletContext;
import javax.servlet.jsp.tagext.TagLibraryInfo;import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
import org.apache.jasper.Options;
import org.apache.jasper.compiler.JspConfig;
import org.apache.jasper.compiler.JspRuntimeContext;
import org.apache.jasper.compiler.TagPluginManager;
import org.apache.jasper.compiler.TldCache;
import org.apache.jasper.servlet.JspCServletContext;
import org.apache.jasper.servlet.TldScanner;
import org.apache.log4j.Logger;
import org.xml.sax.SAXException;import com.xjcy.util.FileUtils;/**** 预编译jsp文件,移除ant引用 2018-04-10* * @author YYDF**/
public class JspC implements Options {static final Logger logger = Logger.getLogger(JspC.class);private String uriRoot;private File scratchDir;private JspCServletContext context;private TldScanner scanner;private TldCache tldCache;private JspRuntimeContext rctxt;private JspConfig jspConfig;private TagPluginManager tagPluginManager;private final List<String> pages = new Vector<>();private static final String Encoding = "UTF-8";public JspC(ServletContext sc, boolean clear) {this(sc, null, clear);}public JspC(ServletContext sc, List<String> jspList, boolean clear) {this.uriRoot = sc.getRealPath("/");String outputDir = sc.getRealPath(StrutsContext.CLASS_PATH);this.scratchDir = new File(outputDir);try {if (jspList != null) {pages.addAll(jspList);logger.debug("Add pages with list " + jspList.size());}initServletContext(this.getClass().getClassLoader());if (clear) {File output = new File(outputDir + "/org");if (output.exists()) {FileUtils.deleteDir(output);logger.debug("Deleted dir " + output.getPath());}}} catch (JasperException | IOException e) {logger.error("Init context faild", e);}}public void setJspFiles(String jspFiles) {if (jspFiles == null) {return;}StringTokenizer tok = new StringTokenizer(jspFiles, ",");while (tok.hasMoreTokens()) {pages.add(tok.nextToken());}}public void execute() {long start = System.currentTimeMillis();Iterator<String> iter = pages.iterator();while (iter.hasNext()) {processFile(iter.next());}logger.debug("Jsp servlet build success in " + (System.currentTimeMillis() - start) + " ms");}protected void initServletContext(ClassLoader loader) throws IOException, JasperException {URL resourceBase = new File(uriRoot).getCanonicalFile().toURI().toURL();context = new JspCServletContext(new PrintWriter(System.out), resourceBase, loader, false, false);try {scanner = new TldScanner(context, false, false, false);scanner.scan();} catch (SAXException e) {throw new JasperException(e);}tldCache = new TldCache(context, scanner.getUriTldResourcePathMap(), scanner.getTldResourcePathTaglibXmlMap());rctxt = new JspRuntimeContext(context, this);jspConfig = new JspConfig(context);tagPluginManager = new TagPluginManager(context);}protected void processFile(String file) {try {String jspUri = file.replace('\\', '/');JspCompilationContext clctxt = new JspCompilationContext(jspUri, this, context, null, rctxt);logger.debug("Compiling file: " + file);clctxt.createCompiler().compile(true, true);} catch (Exception e) {logger.error("Compile '" + file + "' faild", e);}}@Overridepublic boolean getErrorOnUseBeanInvalidClassAttribute() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean getKeepGenerated() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isPoolingEnabled() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean getMappedFile() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean getClassDebugInfo() {// TODO Auto-generated method stubreturn false;}@Overridepublic int getCheckInterval() {// TODO Auto-generated method stubreturn 0;}@Overridepublic boolean getDevelopment() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean getDisplaySourceFragment() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isSmapSuppressed() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isSmapDumped() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean getTrimSpaces() {return true;}@Overridepublic String getIeClassId() {return "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93";}@Overridepublic File getScratchDir() {return scratchDir;}@Overridepublic String getClassPath() {// TODO Auto-generated method stubreturn null;}@Overridepublic String getCompiler() {// TODO Auto-generated method stubreturn null;}@Overridepublic String getCompilerTargetVM() {// TODO Auto-generated method stubreturn null;}@Overridepublic String getCompilerSourceVM() {// TODO Auto-generated method stubreturn null;}@Overridepublic String getCompilerClassName() {return "org.apache.jasper.compiler.JDTCompiler";}@Overridepublic TldCache getTldCache() {return tldCache;}@Overridepublic String getJavaEncoding() {return Encoding;}@Overridepublic boolean getFork() {// TODO Auto-generated method stubreturn false;}@Overridepublic JspConfig getJspConfig() {return jspConfig;}@Overridepublic boolean isXpoweredBy() {// TODO Auto-generated method stubreturn false;}@Overridepublic TagPluginManager getTagPluginManager() {return tagPluginManager;}@Overridepublic boolean genStringAsCharArray() {return true;}@Overridepublic int getModificationTestInterval() {// TODO Auto-generated method stubreturn 0;}@Overridepublic boolean getRecompileOnFail() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isCaching() {// TODO Auto-generated method stubreturn false;}@Overridepublic Map<String, TagLibraryInfo> getCache() {// TODO Auto-generated method stubreturn null;}@Overridepublic int getMaxLoadedJsps() {// TODO Auto-generated method stubreturn 0;}@Overridepublic int getJspIdleTimeout() {// TODO Auto-generated method stubreturn 0;}@Overridepublic boolean getStrictQuoteEscaping() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean getQuoteAttributeEL() {// TODO Auto-generated method stubreturn false;}
}

http://www.jmfq.cn/news/5000239.html

相关文章:

  • 百度提交链接/学seo哪个培训好
  • 法院被执行人查询系统/seo产品是什么意思
  • 自己做公司网站难吗/营销网站建设都是专业技术人员
  • 做网站基本流程/seo发贴软件
  • c2c就是利用专业网站提供的电子商务平台完成交易/360搜索首页网址是多少
  • 塘厦网站仿做/手机优化大师为什么扣钱
  • 长春做网站外包/建立网站费用大概需要多少钱
  • 网站建设教学视频/网络推广整合平台
  • 做网站税费/seo外包公司报价
  • 手表网站大全/成人职业技术培训学校
  • 苏州网站建设公司电话/跨境电商平台注册开店流程
  • 东莞建设网站费用/电商详情页模板免费下载
  • 西宁的网站设计/seo优化首页
  • 上海网站开发建设电话/100个常用的关键词
  • 谷德室内设计网/google seo优化
  • 网站在线考试答题系统怎么做/免费b站在线观看人数在哪儿
  • 民治做网站联系电话/合肥seo整站优化网站
  • 网站设计程序/网络推广怎么做?
  • 网站建设平台方案/怎么开通百度推广账号
  • 潍坊人才招聘网/杭州seo全网营销
  • asp.net做网站的流程/静态网页制作
  • 做网站来钱快/网店推广的渠道有哪些
  • 做药的文献一般在哪些网站查找/关键词优化精灵
  • 自适应网站的图做多大 怎么切/关键字挖掘机爱站网
  • 做音乐网站的目地/中国足彩网竞彩推荐
  • 福州工厂网站建设定制服务/专业做网站设计
  • c web网站开发浏览器/广州网站制作公司
  • 投放广告网站/宁波营销型网站建设优化建站
  • 开网站做商城怎么样/哪里可以接广告
  • 长春网站建设seo/百度搜索大数据查询