是完成一个留言本的功能,填写好留言后交给如下的jsp页面处理,源程序如下:
<%@page contentType="text/html" %>
<%@page language="java" %>
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<%@page import="java.text.*" %>
<%!
// resolve the chinese problem
public String getStr(String str)
{
  try
  {
  String temp_p=str;
  byte[]temp_t=temp_p.getBytes("ISO8859_1");
  String temp=new String(temp_t);
  return temp;
}
catch(Exception e)
{
}
return "空";
}
%>
<%
String Name;
String Email;
String Subject;
String Memo;
Name=request.getParameter("Name");
Email=request.getParameter("Email");
Subject=request.getParameter("Subject");
Memo=request.getParameter("Memo");
// remove the kongge
Name.trim();
Email.trim();
Subject.trim();
Memo.trim();
// check the input 
if((Name.length()==0)||(Email.length()==0)||(Subject.length()==0)||(Memo.length()==0))
{
out.print(" the input isn't null");
out.print("<br>");
out.println("<a href=index.htm>return</a>");
return;
}String Line1;
Line1="留言人:"+Name;
Line1=Line1+"      ";
Email="<a href=mailto:"+Email+">"+Email+"</a>";
Line1=Line1+"Email"+Email+"<br>";String Line2;
Line2="主题:"+Subject+"<br>";
String makeContent=new String();
StringTokenizer strToken=new StringTokenizer(Memo,"\n");
while(strToken.hasMoreTokens()){
makeContent=makeContent+"<br>"+strToken.nextToken();
}
 Memo=makeContent;
 
 String Line3;
 Line3="<table border=0 bgcolor=#00ffff><tr><td>";
 Line3=Line3+Memo+"</td></tr></table>";
 
 String Line4;
 Date currTime=new Date();
 SimpleDateFormat formatter=new SimpleDateFormat("yyyy/MM/dd a hh:mm:ss",Locale.US);
 Line4="时间:"+formatter.format(currTime);
 %>
 
 
 <%
 // write the message to the file
 try{
 
String path="e://tomcat/webapps/mytest/liuyan/gbook.txt";
FileWriter file=new FileWriter(path,true);
PrintWriter pwout=new PrintWriter(file);// write the message
pwout.println(getStr(Line1));
pwout.println(getStr(Line2));
pwout.println(getStr(Line3));
pwout.println(getStr(Line4));
pwout.println("<hr>");
 
 pwout.close();
 }
 
 catch(IOException e){
  out.println(e.toString());
  }
  response.sendRedirect("http://127.0.0.1:8080/mytest/liuyan/gbook.jsp");
  %>

解决方案 »

  1.   

    root cause java.lang.NullPointerException
    at org.apache.jsp.gform_jsp._jspService(gform_jsp.java:77)这不是写的很清楚吗,下面的地方就会出问题
    Name=request.getParameter("Name");
    Email=request.getParameter("Email");
    Subject=request.getParameter("Subject");
    Memo=request.getParameter("Memo");
    // remove the kongge
    Name.trim();
    Email.trim();
    Subject.trim();
    Memo.trim();
    如果request得不到某个值那么就是null,对null进行trim当然会出nullpointer了