07年12月18号
1:使用jspSmartUpload组件时出现不能下载的异常,后来发现组件有问题,
在mySmartUpload.initialize(pageContext);一句前了加上
out.clear();
out=pageContext.pushBody(); 后解决
2:使用jspSmartUpload组件时出现不能显示的异常
后发现调用方法必须为“post”;<form action="sample1.jsp" enctype="multipart/form-data" method="post">
07年12月19号:
eclipse 在 new Servlet的时候出现版本号的异常,在eclipse中试着修改JDK后还是不行
最后发现不环境变量的路径有问题,改过后 重启eclipse后正常。
07年12月20号
1:在用commons fileUpload组件时,出现java.io.FileNotFoundException: F:/upLoaded (拒绝访问。)的错误,后发现如果上传为空时,fileName不为null,而是为"";修改后解决.
2:发现在commons fileUpload和jspSmartUpload中上传文件,文件名为乱码的问题,
后在上传文件的jsp上加入<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>问题解决
07年12月20号
今天在用jdbc访问mysql时发现老出现错误连不上数据库,开始以为是数据量过大,后来发现是因为
配置文件中的url是用以前的没有端口号的那个,后来改为jdbc.url=jdbc:mysql://localhost:3309/edulocal,问题解决.
07年12月27号
今天又遇到了Apache Tomcat 启动不了的问题,在eclipse下能打开,其他情况下却打不开,症状是start之后闪了一下,然后启动界面就消失了,而Tomcat 还是没有启动.
我在Apache Tomcat 的安装目录下打开logs文件夹,找到今天的日志进行分析后发现错误原因是找不到一个模块.
[2007-09-11 22:40:35] [174 javajni.c] [error] 找不到指定的模块。
于是我把jre里的msvcr71.dll文件拷贝到C:/windows/system32下面,重新启动Tomcat 后,问题解决了.
2:免安装版的Tomcat6启动不了服务
后在
C:/songguanghui/tomcat6/bin目录下catalina.bat,service.bat,startup.bat中
rem ---------------------------------------------------------------------------
后加上
set JAVA_HOME=C:/songguanghui/Java/jdk1.6.0
set CATALINA_HOME=C:/songguanghui/Tomcat6
解决!
拷贝jdk到tomcat安装目录,不必再配置tomcat的jdk路径
拷贝jdk安装目录下的 bin、include和lib目录拷贝到tomcat的安装目录下。且jdk目录名:jdk1.6.0_01
然后修改startup.bat文件,在文件头部加如下代码:
set CURRENT_DIR=%cd%
cd ..
set CURRENT_DIR=%cd%
set JDK_HOME=%CURRENT_DIR%
set JAVA_HOME=%JDK_HOME%/jdk1.6.0_01
set CURRENT_DIR=%cd%
cd %CURRENT_DIR%/bin
即可。
2008年1月9号
Web工程下WEB-INF中Lib中加入Jar包后,不能自动导入到Web App Libraries中。
后在工程buiderPath->addLibraries->Web App Libraries->工程名->确定
解决!
servlet中使用javaScript:
post下
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
--------------------------------------------------------------
out.print("<script>alert('注册人数已满,添加用户失败!');</script>");
out.print("<script>location.href='/xtgl/admu_adduser.jsp';</script>");
out.print("<script>top.location.href='/xtgl/admu_adduser.jsp';</script>");连接到最上层
out.print("<script>window.close();</script>");
<a href="Javascript:window.history.go(-1)">
οnclick="javascript:window.close();
Response.write " <script >alert( '校验不正确! ');javascript:history.back(); </script >
out.print("<script>window.open('grxxNum33.jsp', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no')</script>");
2008年1月10号
发现Tomcat不执行新改后的jsp文件,只执行以前的。。。
后在C:/huayangedu/Tomcat5/work/Catalina/localhost/_/org/apache/jsp
下找到jsp编译过的servlet把其删除后。就可以了.
2008年3月3日
Hibernate+Spring 查数据库时出现 could not initialize proxy - no Session
错误,后修改
<many-to-one name="ygbm" class="Bmxx" lazy="false">
<column name="bmid"></column>
</many-to-one>
lazy设为false后解决
2008年3月5日
org.apache.jasper.JasperException: Unable to compile class for JSP 解决方法
把jdk安装目录下的lib/tools.jar拷贝到tomcat安装目录下的common/lib目录下,然后重启tomcat,
2008年3月7日
javascrip和函数传字符串参数,调用时应加“‘ ’”单引号
2008年3月10日
Eclipse生成的web.xml的<web-app></web-app>中添加< taglib>标签出错,
成web工程时,产生的web.xml文件中的<web-app>标签是这样的:
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
而不是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
......
</web-app>
应该是与xml schema有关。
正确方法应该是用<jsp-config></jsp-config>把tiglib包含起来即可以排除错误。此外,有些 web.xml的可视化编辑不加<jsp-config>的话认不出taglib的内容。
2008年3月11号
hibernate+String中老报could not initialize a collection: 错误,后发现一对多关系时,如果有两个一对多的关系,要lazy=“true”
2008年3月14日
jsp传到servlet中代码全是乱码”????“,后发现是字符转换的问题
写了一个小方法,把所有的String转换一下,就好了
方法如下:
public String toGbk(String x) {
byte[] y;
try {
y = x.getBytes("ISO8859_1");
String z = new String(y, "gbk");
return z;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return "zhi fu ji cuowu!";
}
}
2008年3月18号
jsp中用javascript日历中的时间格式和国际化标签的时间格式不一样,后来发现月份是一位或两位,标签中的月份默认为位
后加一个方法解决!
如下:
public static String getNowDateShort() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(currentTime);
return dateString;
}
servlet中生成9位Integer类型的编号的方法:
public Integer getId(){
Date id=new Date();
String ids=String.valueOf(id.getTime());
String ids2=ids.substring(0, 9);
Integer thisid=Integer.valueOf(ids2.trim());
return thisid;
}
2008年3月19号
Tomcat设置抛出异常时应该显示的页面
<error-page>
<error-code>404</error-code>
<location>/notFileFound.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/null.jsp</location>
</error-page>
<%@ page isErrorPage="true" errorPage="error.jsp"%>
也可以捕捉NullPointerException这种异常,此时转向error.jsp
jsp中设<error-page> 时显示不出来,后发现是jsp错误页面太小了,后在页里面加入大约50行
注释后,就解决。。
org.apache.jasper.JasperException: 。。。 equal symbol expected异常
是因为jsp页面最上边<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>错误!!
2008年3月21号
使用commons的fileupload组件上传时,在servelt中不能使用 request.getParameter("")方法
后发现在因为在jsp中要上传,需用到<form action="NwgjNum4.go" enctype="multipart/form-data" method="post">
所以不能用
后来在servlet中用
FileItem fi = (FileItem) object;
String fileName=fi.getName();
String fileName2 = fi.getFieldName();
if(fileName2.equals("fileName")){
fileNames=toGbk(fi.getString());
}
if(fileName2.equals("fileType"))
fileType=toGbk(fi.getString());
if(fileName2.equals("fileExp"))
fileExp=toGbk(fi.getString());
的办法解决!!
在servlet中使用spring中hibernate的hql询的方法(特别有用):
ApplicationContext app = new ClassPathXmlApplicationContext(
"Application.xml");
SessionFactory sessionFactory = (SessionFactory) app.getBean("huayangSessionFactory");
Session hsession=sessionFactory.openSession();
hsession.beginTransaction();
int pageNumber =1;
int pageSize=15;
String hql="from Xzzl x order by x.zldownnum desc";
Query query=hsession.createQuery(hql);
query.setFirstResult((pageNumber - 1) * pageSize);
query.setMaxResults(pageSize);
List list=query.list();
request.setAttribute("list", list);
2008年3月24号
java Applet小程序,编译后的.class文件必须和和jsp文件放到同一路径下!!!
2008年3月25号
eclipse启动时报
Resource is out of sync with the file system: ...错误。
右击项目 refresh一下就OK了 这是因为在eclipse外部对文件进行了修改造成不同步的问题
2008年4月1号
在tomcat启动的时候,出现这个警告:
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
解决方法:把log4j.properties文件拷贝到web工程src目录下
2008年4月2号
jsp页面EL+jstl实现for循环
<c:set var="x" value="1" scope="page"/>
<c:forEach items="${requestScope.khmx}" var="khmx">
<tr>
<input name="mx${x}" type="hidden" value="${khmx.mxid}"/>
<td align="left">${khmx.gznr}</td>
<td align="left">${khmx.gzqz}</td>
<td align="left"><select name="select${x}" size="1">
<option value="1.1">A</option>
<option value="1.0">B</option>
<option value="0.9">C</option>
<option value="0.8">D</option>
<option value="0.7">E</option>
</select></td>
<c:set var="x" value="${x+1}" scope="page"/>
</tr>
</c:forEach>
2008年4月16号
jsp中判断是集合是否为空
<tr><c:choose><c:when test="${fn:length(requestScope.customers) == 0}">
<td>没有满足条件的纪录</td></c:when>
<c:otherwise>
<td align="right">共${fn:length(requestScope.customers)}行
第 ${param.pageNumber } {requestScope.customers[0].totalPageCount } 页</td>
</c:otherwise></c:choose></tr>
2008年4月21日
启动eclipse时出现resource is out of sync with the file system
查阅资料后发现这是文件系统不同步的问题,是因为在eclipse之外对工程中的resource进行修改引起的;但是,有时没有在eclipse之外进行修改,也会报类似的错误。
解决办法:需要手动刷新一下资源管理器。
(1)在eclipse中,工程目录右键,选择F5(refresh)
(2)设置eclipse自动刷新。
通过Window->Preferences->General->Workspace,选中Refresh automatically。