就是张孝祥 java web核心基础中的 8-7例程。
从 mails.txt文件中读邮件列表,加入网页中(用JSP)。
网页中加了个 Form ;里面有几个 checkbox控件, 有一个checkbox为全选,选中它,其它的checkbox也都选中。
我按书上,一步步来,结果在tomcat启动后,报错,后来直接把书中作者提供的jsp文件直接用,还是报错。
web应用目录为 it315, jsp文件 it315\jsp\maillist.jsp; 我在it315目录下建了一个mails.txt文件;内容为:
邮件1
邮件2
邮件3源码如下:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%><%!
//定义一个方法读取并返回文本文件中的每行数据
Vector getMails(ServletContext application) throws Exception
{
//要注意mails.txt文件的位置
InputStream ips = application.getResourceAsStream("/mails.txt");
BufferedReader br =
new BufferedReader(new InputStreamReader(ips));
Vector vMails = new Vector();
String mail = br.readLine();
while(mail != null)
{
vMails.add(mail);
mail = br.readLine();
}
br.close();
return vMails;
}
%><script language="javascript">
function checkAll()
{
//如果邮箱中不存在邮件,就直接返回。
if(document.mailForm.mail == null)
{
return;
} /*如果邮箱中存在一封或多封邮件,程序的执行流程才会到达下面的部 分。下面的if条件判断邮箱中只有一封邮件的情况。*/
if(document.mailForm.mail.length == null)
{
document.mailForm.mail.checked =
document.mailForm.ifAll.checked;
return;
}
//下面的代码用于处理邮箱中有多封邮件的情况
var count = document.mailForm.mail.length;
for(var i=0; i<count; i++)
{
document.mailForm.mail[i].checked =
document.mailForm.ifAll.checked;
}
}
</script><form name="mailForm">
<%
//调用getMails()方法,读取文本文件中的数据并输出给客户端
Vector v = getMails(application);
for(Enumeration e = v.elements();e.hasMoreElements();)
{
String mail = (String)e.nextElement();
out.println("<input type ='checkbox' name='mail'>" +
mail + "<br>");
}
%>
<input type="checkbox" name="ifAll" onclick="checkAll()">全选
</form>报错如下:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
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)
root cause java.lang.NullPointerException
java.io.Reader.<init>(Reader.java:61)
java.io.InputStreamReader.<init>(InputStreamReader.java:55)
org.apache.jsp.jsp.maillist_jsp.getMails(maillist_jsp.java:15)
org.apache.jsp.jsp.maillist_jsp._jspService(maillist_jsp.java:116)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
从 mails.txt文件中读邮件列表,加入网页中(用JSP)。
网页中加了个 Form ;里面有几个 checkbox控件, 有一个checkbox为全选,选中它,其它的checkbox也都选中。
我按书上,一步步来,结果在tomcat启动后,报错,后来直接把书中作者提供的jsp文件直接用,还是报错。
web应用目录为 it315, jsp文件 it315\jsp\maillist.jsp; 我在it315目录下建了一个mails.txt文件;内容为:
邮件1
邮件2
邮件3源码如下:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%><%!
//定义一个方法读取并返回文本文件中的每行数据
Vector getMails(ServletContext application) throws Exception
{
//要注意mails.txt文件的位置
InputStream ips = application.getResourceAsStream("/mails.txt");
BufferedReader br =
new BufferedReader(new InputStreamReader(ips));
Vector vMails = new Vector();
String mail = br.readLine();
while(mail != null)
{
vMails.add(mail);
mail = br.readLine();
}
br.close();
return vMails;
}
%><script language="javascript">
function checkAll()
{
//如果邮箱中不存在邮件,就直接返回。
if(document.mailForm.mail == null)
{
return;
} /*如果邮箱中存在一封或多封邮件,程序的执行流程才会到达下面的部 分。下面的if条件判断邮箱中只有一封邮件的情况。*/
if(document.mailForm.mail.length == null)
{
document.mailForm.mail.checked =
document.mailForm.ifAll.checked;
return;
}
//下面的代码用于处理邮箱中有多封邮件的情况
var count = document.mailForm.mail.length;
for(var i=0; i<count; i++)
{
document.mailForm.mail[i].checked =
document.mailForm.ifAll.checked;
}
}
</script><form name="mailForm">
<%
//调用getMails()方法,读取文本文件中的数据并输出给客户端
Vector v = getMails(application);
for(Enumeration e = v.elements();e.hasMoreElements();)
{
String mail = (String)e.nextElement();
out.println("<input type ='checkbox' name='mail'>" +
mail + "<br>");
}
%>
<input type="checkbox" name="ifAll" onclick="checkAll()">全选
</form>报错如下:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
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)
root cause java.lang.NullPointerException
java.io.Reader.<init>(Reader.java:61)
java.io.InputStreamReader.<init>(InputStreamReader.java:55)
org.apache.jsp.jsp.maillist_jsp.getMails(maillist_jsp.java:15)
org.apache.jsp.jsp.maillist_jsp._jspService(maillist_jsp.java:116)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
解决方案 »
- 求救!!!记录提交的参数的值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 为何Resultset1.getObject("semail")没有显示出来,SQL2000,semail(char类型)
- 找点struts项目源码........
- 局域网考试管理系统-考试管理
- 有人知道如何使用ibatis实现复合条件查询吗?
- [求助]从mysql数据库读出的数据中文都是乱码
- Javascript用法求解
- 怎么在图片上写文字?而且是中文....最好有例子..谢谢!
- jsp bean 无法运行的问题,请教高手。
- 我也遇到了这个jsp不能显示出来,请问是什么原因?
- JAVAEE版 eclipse能不能自己配置外部的服务器呢
- 求助java如何使用JAX-WS开发webservice?
但不知道为什么
InputStream ips = application.getResourceAsStream("/mails.txt");
BufferedReader br =
new BufferedReader(new InputStreamReader(ips));
就不行呢?老张(孝祥)的源代码都 不行?
这个有问题吧
InputStream ips = application.getResourceAsStream("../mails.txt");