- 浏览: 151977 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (130)
- PL/SQL (18)
- JSTL (2)
- Linux (5)
- 反射 (1)
- 路径 (6)
- za (5)
- 数组 (1)
- 无聊代码 (2)
- GC (1)
- 源代码学习 (1)
- ThreadLocal (3)
- 多线程 (5)
- 锁 (2)
- 服务器 (2)
- exception (3)
- struts (2)
- spring (7)
- hibernate (3)
- oracle (8)
- JS (4)
- jsp/servlet基础 (1)
- 菜 (1)
- JVM (2)
- PC (1)
- 设计模式 (2)
- uml (1)
- Bean (2)
- IO (3)
- eclipse (0)
- Collection (14)
- 内部类 (1)
- 正则 (4)
- 编码?? (1)
- 加密 (2)
- Date (3)
- 佛 (3)
- XML (1)
- JFreeChart (1)
- itext (0)
- JDBC (1)
- word (1)
最新评论
-
qq_27688163:
public static void printIsta ...
基础多态 -
qq_27688163:
最后运行的结果应该是:i=3lalai=3lalaBB13
基础多态 -
mercyblitz:
Thread 没有生命周期时间,对于这种资源(需要关闭的),T ...
ThreadLocal3
example .new file (path).通过类路径得到path; 如果文件已经存在,可以用servletContext
- 博客分类:
- 路径
如果文件已经存在,可以用this.getServletContext().getResourceAsStream("/WEB-INF/...")
如果要创建文件一定不行,要用绝对路径:
strPicPath = new File ( Thread.currentThread().getContextClassLoader().getResource("").getPath()).getParentFile().getParentFile().getPath();
System.out.println("revised picture path:"+strPicPath);
strPicPath =strPicPath+File.separator+strPicFolder+File.separator+type+".png";
File f = new File(strPicPath);
/* ------------------------------- * ServletDemo2ChartGenerator.java * ------------------------------- * (C) Copyright 2002-2004, by Object Refinery Limited. * */ package demo; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.time.Day; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.data.xy.XYDataset; import org.jfree.date.SerialDate; /** * A servlet that returns one of three charts as a PNG image file. This servlet * is referenced in the HTML generated by ServletDemo2. * <P> * Three different charts can be generated, controlled by the ’type’ parameter. * The possible values are ’pie’, ’bar’ and ’time’ (for time series). * <P> * This class is described in the JFreeChart Developer Guide. */ public class ServletDemo2ChartGenerator extends HttpServlet { /** * Default constructor. */ public ServletDemo2ChartGenerator() { // nothing required } /** * Process a GET request. * * @param request * the request. * @param response * the response. * * @throws ServletException * if there is a servlet related problem. * @throws IOException * if there is an I/O problem. */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { OutputStream out = response.getOutputStream(); try { String type = request.getParameter("chart"); JFreeChart chart = null; if (type.equals("pie")) { chart = createPieChart(); } else if (type.equals("bar")) { chart = createBarChart(); } else if (type.equals("time")) { chart = createTimeSeriesChart(); } if (chart != null) { loadChart2(request,response,out,chart,type); } } catch (Exception e) { e.printStackTrace(); System.err.println(e.toString()); } finally { out.close(); } } private void loadChart1(HttpServletRequest request, HttpServletResponse response,OutputStream out,JFreeChart chart,String type) throws IOException{ response.setContentType("image/png"); String strPicFolder = "picture"; //System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath()); /* * D:\Server\tomcat-6.0.20-cosmos\webapps\jfreechartTest\WEB-INF\picture\bar.png * completed path !!!, new file() can work */ String strPicPath = new File( Thread.currentThread().getContextClassLoader().getResource("").getPath()).getParent()+File.separator+strPicFolder+File.separator+type+".png"; System.out.println("picture path:"+strPicPath); /*String strPicPath = this.getServletContext().getResource("/WEB-INF").toString()+strPicFolder+File.separator+type+".png"; System.out.println("picture path:"+strPicPath);*/ //InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(strPicPath); File file = new File(strPicPath); if (!file.exists()){ File f = new File(strPicPath); /* * Write Picture to Request; */ ChartUtilities.writeChartAsPNG(out, chart, 400, 300); /* * Save Picture to local */ ChartUtilities.saveChartAsPNG(f, chart, 400, 300); System.out.println("Create new picture..."); }else{ /* * Method1:read picture to bytes; */ InputStream is = new FileInputStream(strPicPath); byte[] b = new byte[1024]; int len; while ( ( len=is.read(b)) != -1){ out.write(b,0,len); } out.flush(); out.close(); is.close(); /* * Method2:pass the picture path to front * It seems not work :( */ /* String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; byte[] b = (basePath+strPicFolder+File.separator+type+".png").getBytes(); System.out.println(basePath+strPicFolder+"/"+type+".png"); out.write(b, 0, b.length); out.flush(); out.close();*/ System.out.println("get cached picture..."); } } private void loadChart2(HttpServletRequest request, HttpServletResponse response,OutputStream out,JFreeChart chart,String type) throws IOException{ response.setContentType("image/png"); String strPicFolder = "picture"; //System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath()); /* *\picture\bar.png , *it is relative path . we can not use it to create file !! (new file) *must start with "/" *In Tomcat it returns jndi:/localhost/jfreechartTest/!!! */ System.out.println(this.getServletContext().getResource("/")); String strPicPath = File.separator+strPicFolder+File.separator+type+".png"; System.out.println("picture path:"+strPicPath); InputStream is = this.getServletContext().getResourceAsStream(strPicPath); if (is == null ){ /* * D:\Server\tomcat-6.0.20-cosmos\webapps\jfreechartTest */ strPicPath = new File ( Thread.currentThread().getContextClassLoader().getResource("").getPath()).getParentFile().getParentFile().getPath(); System.out.println("revised picture path:"+strPicPath); strPicPath =strPicPath+File.separator+strPicFolder+File.separator+type+".png"; File f = new File(strPicPath); /* * Write Picture to Request; */ ChartUtilities.writeChartAsPNG(out, chart, 400, 300); /* * Save Picture to local */ ChartUtilities.saveChartAsPNG(f, chart, 400, 300); System.out.println("Create new picture..."); }else{ /* * Method1:read picture to bytes; */ byte[] b = new byte[1024]; int len; while ( ( len=is.read(b)) != -1){ out.write(b,0,len); } out.flush(); out.close(); is.close(); /* * Method2:pass the picture path to front * It seems not work :( */ /* String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; byte[] b = (basePath+strPicFolder+File.separator+type+".png").getBytes(); System.out.println(basePath+strPicFolder+"/"+type+".png"); out.write(b, 0, b.length); out.flush(); out.close();*/ System.out.println("get cached picture..."); } } /** * Creates a sample pie chart. * * @return a pie chart. */ private JFreeChart createPieChart() { // create a dataset... DefaultPieDataset data = new DefaultPieDataset(); data.setValue("One", new Double(43.2)); data.setValue("Two", new Double(10.0)); data.setValue("Three", new Double(27.5)); data.setValue("Four", new Double(17.5)); data.setValue("Five", new Double(11.0)); data.setValue("Six", new Double(19.4)); JFreeChart chart = ChartFactory.createPieChart("Pie Chart", data, true, true, false); return chart; } /** * Creates a sample bar chart. * * @return a bar chart. */ private JFreeChart createBarChart() { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(10.0, "S1", "C1"); dataset.addValue(4.0, "S1", "C2"); dataset.addValue(15.0, "S1", "C3"); dataset.addValue(14.0, "S1", "C4"); dataset.addValue(-5.0, "S2", "C1"); dataset.addValue(-7.0, "S2", "C2"); dataset.addValue(14.0, "S2", "C3"); dataset.addValue(-3.0, "S2", "C4"); dataset.addValue(6.0, "S3", "C1"); dataset.addValue(17.0, "S3", "C2"); dataset.addValue(-12.0, "S3", "C3"); dataset.addValue(7.0, "S3", "C4"); dataset.addValue(7.0, "S4", "C1"); dataset.addValue(15.0, "S4", "C2"); dataset.addValue(11.0, "S4", "C3"); dataset.addValue(0.0, "S4", "C4"); dataset.addValue(-8.0, "S5", "C1"); dataset.addValue(-6.0, "S5", "C2"); dataset.addValue(10.0, "S5", "C3"); dataset.addValue(-9.0, "S5", "C4"); dataset.addValue(9.0, "S6", "C1"); dataset.addValue(8.0, "S6", "C2"); dataset.addValue(null, "S6", "C3"); dataset.addValue(6.0, "S6", "C4"); dataset.addValue(-10.0, "S7", "C1"); dataset.addValue(9.0, "S7", "C2"); dataset.addValue(7.0, "S7", "C3"); dataset.addValue(7.0, "S7", "C4"); dataset.addValue(11.0, "S8", "C1"); dataset.addValue(13.0, "S8", "C2"); dataset.addValue(9.0, "S8", "C3"); dataset.addValue(9.0, "S8", "C4"); dataset.addValue(-3.0, "S9", "C1"); dataset.addValue(7.0, "S9", "C2"); dataset.addValue(11.0, "S9", "C3"); dataset.addValue(-10.0, "S9", "C4"); JFreeChart chart = ChartFactory.createBarChart3D("Bar Chart", "Category", "Value", dataset, PlotOrientation.VERTICAL, true, true, false); return chart; } /** * Creates a sample time series chart. * * @return a time series chart. */ private JFreeChart createTimeSeriesChart() { // here we just populate a series with random data... TimeSeries series = new TimeSeries("Random Data"); Day current = new Day(1, SerialDate.JANUARY, 2001); for (int i = 0; i < 100; i++) { series.add(current, Math.random() * 100); current = (Day) current.next(); } XYDataset data = new TimeSeriesCollection(series); JFreeChart chart = ChartFactory.createTimeSeriesChart( "Time Series Chart", "Date", "Rate", data, true, true, false); return chart; } }
发表评论
-
servletContextResource (ServletContext.getResourceAsStream)
2010-07-04 14:32 4277/* * Copyright 2002-2005 the ... -
得到WEB-INF/classes路径的几种方式有何区别?
2010-07-01 19:21 1740下面四种方式都可以得到webroot/WEB-INF/clas ... -
Java路径问题最终解决方案 转
2010-06-17 01:11 1153getResourceAsStream ()返回的是input ... -
Servlet的Request中和用户请求路径相关的操作有多个(网络整理)
2010-05-21 17:18 3980Servlet的Request中和用户请求路径相关的操作有多个 ... -
开发中的路径
2010-05-20 21:55 900request.getRequestDispatcher(ad ...
相关推荐
- 使用`java.class.path`系统属性也可以动态改变类路径,但这种方式并不推荐,因为它可能影响其他库的加载。 5. jar文件的路径 - 在jar文件中,类的路径由`package/ClassName.class`格式表示,例如`...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
- **Class**和**ClassLoader**:Java API提供了从类路径中获取资源的方法,路径可以是相对于当前类的相对路径,只能使用相对路径。 10. **路径**: - `<url-pattern>`是Servlet配置中的元素,定义了映射到Servlet...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
通过合理的配置,可以实现日志分级、输出格式化、文件滚动等功能,极大地提高了日志管理的效率,为问题排查和系统监控提供了便利。对于开发者来说,熟练掌握log4j的使用是提高工作效率的重要手段。
File uploadedFile = new File("/path/to/save", fileName); item.write(uploadedFile); } } } ``` **SWFUpload介绍** SWFUpload是一个基于Flash的JavaScript库,它提供了前端文件选择和后台文件上传的功能。...
这里通过`getInitParameter`获取Web应用中的初始化参数,通常是log4j配置文件的路径,然后调用`PropertyConfigurator.configure()`方法加载配置。 #### 在IDE中使用Log4j 对于在IDE中开发的应用,可以直接在代码中...
### 实现Struts上传多个文件 在开发基于Struts框架的应用程序时,有时我们需要实现文件上传功能,尤其是在需要用户上传多张图片的情况...通过上述步骤,你可以轻松地在自己的项目中实现多文件上传功能,提高用户体验。
- `classpath:`:使用`ClassPathResource`实例访问类路径里的资源。 - `file:`:使用`UrlResource`实例访问本地文件系统的资源。 - `http:`:使用`UrlResource`实例访问基于HTTP协议的网络资源。 - 无前缀:由具体的...
Notification that a new attribute was added to the servlet context. attributeAdded(ServletRequestAttributeEvent) - Method in interface javax.servlet.ServletRequestAttributeListener Notification that...
这里,`/myServlet`是访问Servlet的URL路径,`/path/to/MyServlet.class`是Servlet类的全限定类名(包括包名)。 3. **创建Servlet类**:创建一个Servlet类,继承自`javax.servlet.http.HttpServlet`,重写`doGet`...
在Struts2中,我们可以通过配置Action类和Struts.xml文件来利用这个库。 首先,我们需要在Action类中定义一个字段来接收上传的文件。这个字段通常是一个`File`类型的数组,因为我们要处理多个文件。例如: ```java...
根据给定文件的信息,我们可以提炼出以下几个重要的知识点: ### 1. DOM4J 的使用流程和常用方法 **使用流程**: 1. **创建Document对象**:通过SAXReader类来解析XML文件,并将XML文档转换成Document对象。 2. **...
- URL由协议(如http、https)、域名(如www.example.com)和路径(如/path/to/file)三部分组成。 4. **Tomcat配置**: - Tomcat的配置文件主要在conf目录下,web应用程序的目录名为webapps。 - 启动Tomcat通常...