`
137459045
  • 浏览: 22450 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解析Excel和XML

 
阅读更多
解析Excel:
	
	/**
	 * 通过文件的路径得到一个工作表实例
	 * @param filePath 文件路径
	 * @throws IOException
	 */
	public void initWorkBook(String filePath) throws IOException {
		
		File file = new File(filePath);
		InputStream is = new FileInputStream(file);
		
		Workbook workbook = null;
//		判断文件是什么格式
		if(filePath.endsWith(".xls")) {
			workbook = new HSSFWorkbook(is);//Excel 2003
		} else if(filePath.endsWith(".xlsx")) {
			workbook = new XSSFWorkbook(is);//Excel 2007
		}
		parseWorkbook(workbook);//解析workbook中的内容
	}
	
	/**
	 * 解析Workbook对象
	 * @param workbook
	 */
	public void parseWorkbook(Workbook workbook) {
		
//		得到Sheet的个数
		int sheetNum = workbook.getNumberOfSheets();
		
		Sheet sheet = null;
//		遍历sheet
		for(int i=0; i<sheetNum; i++) {
			sheet = workbook.getSheetAt(i);
			parseSheet(sheet);//解析Sheet中的内容
		}
	}
	
	/**
	 * 解析Sheet对象
	 * @param sheet
	 */
	public void parseSheet(Sheet sheet) {
		Row row = null;
		Iterator<Row> iterator = sheet.iterator();
		
		while(iterator.hasNext()) {
			row = iterator.next();
			parseRow(row);//解析Row中的内容
		}
	}
	
	/**
	 * 解析Row对象
	 * @param row
	 */
	public void parseRow(Row row) {
		Cell cell = null;
		Iterator<Cell> iterator = row.iterator();
		
		while(iterator.hasNext()) {
			cell = iterator.next();
			cell.setCellType(Cell.CELL_TYPE_STRING);
			System.out.println(cell.getStringCellValue());
		}
	}

解析XML:
//		初始化解析XML的环境
		SAXReader reader = new SAXReader();
		Document document = reader.read(processConfigFile);
		
		Element root = document.getRootElement();
		
//		遍历XML中的节点
		if("nodeName".equalsIgnoreCase(root.getName())) {
			Iterator<Element> it = root.elementIterator();
			ProcessMonitor processMonitor = null;
			while(it.hasNext()) {

				Element ele = it.next();

			}
		}
分享到:
评论
16 楼 137459045 2013-01-15  
http://mirrors.sonic.net/apache/
15 楼 137459045 2012-12-28  
<result name="success" type="redirect">/displayCart.action?userId=${userId}</result>
14 楼 137459045 2012-12-17  
一,生成server key
keytool -genkey alias jyd -keyalg RSA -keypass 123456 -storepass 123456 -keystore .keystore -validity 3600 

二,导出证书
keytool -export -trustcacerts -alias jyd -file server.cer -keystore .keystore -storepass 123456

三,将证书导入jdk证书信任库
keytool -import -trustcacerts -alias tomcat -file server.cer -keystore  D:jdk1.6.0_24\jre\lib\security\cacerts -storepass 123456
13 楼 137459045 2012-12-07  
InputStream is = SclessontableAction.class.getClassLoader().getResourceAsStream("videoip.properties"); 
Properties prop = new Properties();
prop.load(is);
12 楼 137459045 2012-06-30  
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax.servlet.ServletException: java.lang.NoSuchFieldError: deferredExpression
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)


root cause

javax.servlet.ServletException: java.lang.NoSuchFieldError: deferredExpression
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)


root cause

java.lang.NoSuchFieldError: deferredExpression
org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:212)
org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:166)
org.apache.jsp.page.processMonitor.process_005flist_jsp._jspDestroy(process_005flist_jsp.java:38)
org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:61)
org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
huasai.yanjiubu.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:60)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.35
11 楼 137459045 2012-06-12  
final List<Object> condition = new ArrayList<Object>();
final StringBuffer query = new StringBuffer();

query.append(" 1=1 ");

if(jobId != null && !"".equals(jobId)) {
query.append(" and id.jobId like ?  escape '#' ");
condition.add("%" + jobId.replace("%", "#%").replace("_", "#_") + "%");
}
// 构造stepId的条件
if(stepId != null && stepId != -1) {
query.append(" and id.jobStepId=? ");
condition.add(stepId);
}

if(statusId != null &&statusId != -1) {
query.append(" and id.jobStatusId=? ");
condition.add(statusId);
}

if(createStartTime != null && !"".equals(createStartTime)) {
query.append(" and jobCreatTime>=? ");
condition.add(createStartTime.replace("-", "_") + " 00:00:00");
}

if(createEndTime != null && !"".equals(createEndTime)) {
query.append(" and jobCreatTime<=? ");
condition.add(createEndTime.replace("-", "_") + "23:59:59");
}

return this.getHibernateTemplate().executeFind(new HibernateCallback() {

public Object doInHibernate(Session session) throws HibernateException,
SQLException {
String hql = "from JobDispatch where " + query.toString() + "order by jobCreatTime desc";
Query query = session.createQuery(hql);

// 为query赋参数
for(int i=0; i<condition.size(); i++) {
Object obj = condition.get(i);
if(obj instanceof Integer) {
query.setInteger(i, (Integer)obj);
} else if(obj instanceof String) {
query.setString(i, (String)obj);
}
}
return query.setFirstResult(startRow).setMaxResults(size).list();
}
});
}
10 楼 137459045 2012-06-08  
antlr-2.7.6.jar asm-attrs.jar"asm.jar"aspectjrt.jar"
aspectjweaver.jar"
c3p0-0.9.0.jar"
cglib-nodep-2.1_3.jar"
commons-beanutils-1.7.0.jar"
commons-collections-3.2.jar"
commons-fileupload-1.2.1.jar"
commons-io-1.3.2.jar"
commons-lang-2.3.jar"
commons-logging.jar"
commons-pool-1.3.jar"
dom4j-1.6.1.jar"
ehcache-1.2.jar"
ezmorph-1.0.3.jar"
freemarker-2.3.16.jar"
hibernate3.jar"
javassist-3.7.ga.jar"
jcommon-1.0.10.jar"
jfreechart-1.0.6.jar"
json-lib-2.1.jar"
jstl-api-1.2.jar"
jstl-impl-1.2.jar"
jstl.jar"
jta.jar"
junit-4.10.jar"
log4j-1.2.15.jar"
mail.jar"
mysql-connector-java-5.1.5-bin.jar"
ognl-3.0.jar"
poi-3.6-20091214.jar"
poi-contrib-3.6-20091214.jar"
poi-ooxml-3.6-20091214.jar"
poi-ooxml-schemas-3.6-20091214.jar"
poi-scratchpad-3.6-20091214.jar"
quartz-all-1.6.0.jar"
smtp.jar"
spring.jar"
standard.jar"
stax-api-1.0.1.jar"
struts2-core-2.2.1.1.jar"
struts2-json-plugin-2.3.1.2.jar"
struts2-spring-plugin-2.2.1.1.jar"
xmlbeans-2.3.0.jar"
xwork-core-2.2.1.1.jar"
9 楼 137459045 2012-05-26  
定时器:
<bean id="reportJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="cn.hs.dpl.web.action.TimerAction" />
<property name="jobDataAsMap">
<map>
<entry key="menuService">
<ref bean="menuService"/>
</entry>
</map>
</property>
</bean>

<!-- 
CronTriggerBean指定工作的准确运行时间
-->
<bean id="cronReportTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="reportJob" />
<property name="cronExpression">
<!-- 设置每天晚上11点的时候,会自动进行版本的定制化 -->
<value>0 0 23 ? * *</value>
</property>
</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronReportTrigger" />
</list>
</property>
</bean>  
8 楼 137459045 2012-05-26  
多对多
<set name="appInfoSet" cascade="save-update" table="v5r1_customerlib_app">
            <key column="customerLibId"></key>
            <many-to-many class="cn.hs.dpl.pojo.AppInfo">
            <column name="appId">
            </column>
            </many-to-many>
        </set>
       
        <set name="CustomerLibSet" table="v5r1_customerlib_app" lazy="true">
            <key column="appId"></key>
            <many-to-many class="cn.hs.dpl.pojo.CustomerLib" column="customerLibId"></many-to-many>
        </set>
       
一对多
<set name="ruleReviewStateSet" inverse="true" lazy="true">
<key>
<column name="appId" sql-type="int(1)"></column>
</key>
<one-to-many class="cn.hs.dpl.pojo.RuleReviewState" />
</set>

<many-to-one name="appInfo">
           <column name="appId" sql-type="int(1)">
           </column>
        </many-to-one>
      
一对一
<many-to-one name="person" class="Person" column="PERSON_ID" unique="true"/>
<one-to-one name"employee" class="Employee">

联合主键
<composite-id>
        <key-property name="ruleId" type="java.lang.Integer">
<column name="ruleId" sql-type="int(1)">
</column>
        </key-property>
        <key-many-to-one name="appInfo">
        <column name="appId" sql-type="int(1)">
        </column>
        </key-many-to-one>
</composite-id>

<composite-id>
<key-property name="appId" type="java.lang.Integer">
<column name="appId" sql-type="int(1)">
</column>
</key-property>

<key-property name="appName"  type="java.lang.String">
<column name="appName" sql-type="varchar(32)">
</column>
</key-property>
</composite-id>
7 楼 137459045 2012-05-16  
备注:port 该属性值必须和上边的redirectPort保持一致
      keystoreFile必须是生成证书文件的路径
      keystorePass必须是生成证书时所写的storepass密码
如果上边的配置完毕之后可以重启tomcat,访问"https://服务器IP:8443",如果成功访问就配置完成,否则检查配置是否正确。

上边配置完成之后还可以通过http进行访问,也就是http和https访问方式并存,如果要强制用https访问,可以做如下配置
编辑"tomcat目录/conf/web.xml",在welcome-file-list标签下边加上:
<login-config>  
<!-- Authorization setting for  SSL -->  
<auth-method>CLIENT-CERT</auth-method>  
<realm-name>Client Cert Users-only Area</realm-name>  
</login-config>                 
<security-constraint>           
<!-- Authorization setting for  SSL -->  
<web-resource-collection >  
<web-resource-name >SSL</web-resource-name>  
<url-pattern>/*</url-pattern>  
</web-resource-collection>  
<user-data-constraint>      
<transport-guarantee>CONFIDENTIAL</transport-guarantee>  
</user-data-constraint>     
</security-constraint>

5. 开机自动启动项目
开机自动启动mysql和tomcat,项目在服务器断电或者重启之后,不用手动再启动项目
编辑"/etc/ rc.local"在该文件中加入
service mysql restart
/home/brj/apache-tomcat-6.0.32/bin/startup.sh

备注:
service mysql restart 
#mysql 已经配置成系统服务,所以用service启动
/home/brj/apache-tomcat-6.0.32/bin/startup.sh
#tomcat没有配置服务,只能根据startup.sh所在的路径进行访问启动
6 楼 137459045 2012-05-16  
2. 把项目上传的服务器的任意目录,然后修改"tomcat目录/conf/server.xml",在server.xml最下边的host标签中加入:
<Context path="" docBase="项目所在的路径包含项目名" debug="0" reloadable="false" crossContext="true">
重启tomcat然后在浏览器中访问"http://服务器IP:8080/"可直接访问到我们上传的项目
以上两种项目发布方式,第一种访问需要加项目名字,第二种不需要加

4. 把访问方式设置成https
1.生成证书:
如果 java的环境变量配置完成之后,keytool命令便可以使用,该命令位于"JAVA_HOME/bin"下,生成证书需要如下步骤
执行"keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore /usr/server.keystore -validity 3600"
用户名输入域名,如128.18.191.143(建议时服务器的IP,不然证书会无效),其它可以全部以 enter 跳过也可以输入相关的信息,最后确认,此时会在/usr下生成server.keystore 文件。
注:参数 -keypass和-storepass来指定该证书的密码
    参数 -keystore指定该证书的生成路径
参数 -validity 指证书的有效期(天),缺省有效期只有90天,这里用3600天。
根据server.keystore生成客户端安装的证书,执行"keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit"
注:参数 -file来指定该安装证书的生成路径
参数 -keystore指定server.keystore文件所在的路径
参数 -storepass指定生成server.keystore文件证书的密码
命令执行完毕之后会生成一个server.cer的客户端安装文件,可供用户下载安装,具体安装和说明

2.配置tomcat
证书生成完毕之后,开始配置tomcat,编辑"tomcat目录/conf/server.xml",找到
<Connector port="8080" protocol="HTTP/1.1"
           maxThreads="150" connectionTimeout="20000"
               redirectPort="8443" />
在这句话下边加上:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"  
  port="8443" minSpareThreads="5" maxSpareThreads="75"  
  enableLookups="true" disableUploadTimeout="true"  
  acceptCount="100" maxThreads="200"  
  scheme="https" secure="true" SSLEnabled="true"  
  clientAuth="false" sslProtocol="TLS"  
  keystoreFile="/usr/server.keystore"  
  keystorePass="changeit"/>
5 楼 137459045 2012-05-16  
度 -sh 文件夹的大小
4 楼 137459045 2012-05-16  
status                                              查看linux中mysql的版本
service mysqld restart                              linux的mysql启动和关闭
cat /proc/version      uanme -a                     查看linux版本
free -m     查看内存使用情况
df -m     查看硬盘使用情况
netstat -tln     查看linux的端口使用情况
lsof -i :7710      查看端口被那个程序使用
chkconfig -list|grep -i fire                        查看所有服务中的防火墙
SuSEfirewall2 stop     停用SuSe的防火墙
uname -a     查看内核版本
3 楼 137459045 2012-05-16  
页面上
var params = {"srvCategoryOptionId":srvId};
同步
$.ajax({
type: "POST",
url: url,
data: params,
dataType: "json",
async: false,
success: function(data){
$.each(data, function(){

    });
}
});
异步:
$.ajax("findSub/getSubCategory.action", params, function (data){
      $.each(data, function(){

});
}, "json");

异步上传
$.ajaxFileUpload ({
                url:'appCommit/parsePostiveRate.action?AppId='+appId,//用于文件上传的服务器端请求地址 
                secureuri:true,//一般设置为false 
                fileElementId:'postiveDoc',//文件上传空间的id属性  <input type="file" id="file" name="file" /> 
                dataType: 'json',//返回值类型 一般设置为json 
                success: function (data, status) {
                }, 
                error: function (data, status, e) {//服务器响应失败处理函数 
                }
});

文件下载
FileInputStream fis=new FileInputStream(file);
https
this.getResponse().setHeader("Pragma", "public");
this.getResponse().setHeader("Cache-Control", "max-age=30");

this.getResponse().setContentType("application/force-download");
this.getResponse().setHeader("content-length", String.valueOf(file.length()));
this.getResponse().setHeader("Content-disposition", "attachment;filename="+ new String(fileName.getBytes("gb2312"),"iso8859-1"));
ServletOutputStream os = this.getResponse().getOutputStream();
int length=0;
while((length=fis.read())!=-1){
os.write(length);
}
2 楼 137459045 2012-05-16  
3.Spring定时器,项目用配置发布之后,Spring的定时机制,在执行的时候,执行了两次,原因:把tomcat目录/conf/server.xml中的host标签属性baseapp的值置为“”就行了
4.mysql 用连接池时  8小时之后发现项目报错,无法正常访问,但是访问几次,项目就恢复正常运行,原因:当项目把连接池中所有的连接用完之后,才可以正常访问,mysql在默认情况,把每个连接保持8(28800秒)小时,超过8小时连接将无效,解决办法:在配置连接池的时候加上在8小时之内对所有的连接进行验证是否可用idleConnectionTestPeriod和maxIdleTime,但是无法解决项目运行时,mysql重启的情况
5.struts2的json,在struts2的配置中加上
<action name="destorySessionData" class="importAppPageAction" method="destorySessionData" > 
            <result type="json"/>
        </action>
String jsonString = JSONObject.fromObject(map).toString();
String jsonString = JSONArray.fromObject(list).toString();
HttpServletResponse response = getResponse();
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(jsonString);
1 楼 137459045 2012-05-16  
1.java web项目用配置发布时,访问出现404(本地或用项目名访问完全好用),原因:strurs2的配置文件的命名空间的名字和webapps下的项目名字一样
2.项目运行之后,发现项目在上传文件的时候,大部分无法上传,最后用https上传就行了

相关推荐

Global site tag (gtag.js) - Google Analytics