jsp的问题java.lang.NullPointerException

我想要输入内容,然后保存下来。在写时,是分步调试的,正确。
把tomcat重启后,就不正确了 提示:
type Exception report

message

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

exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

root cause

java.lang.NullPointerException
org.apache.jsp.ex29_jsp._jspService(ex29_jsp.java:74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

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

网页代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<%!
//**************处理中文******************
public String codetoString(String str)
{
String str2=str;
try{
byte b[]=str2.getBytes("iso-8859-1");
return str2=new String(b);
} catch(Exception e){return str2;}
}
%>

<%
//**************创建文件夹******************
File file1=new File("e:/ex29");
file1.mkdirs();
%>

<%
//**************创建文件******************
String textname=request.getParameter("textname");
String tempath="e:/ex29/"+textname;
File textpath=new File(tempath.toString());
if((!textpath.exists())&&textname!=null)
{out.print(textname+"创建成功");textpath.createNewFile();}
else if(textname!=null)
out.print("<font color='#ff00000'>"+"文件名以存在!"+"</font>");

FileWriter fw=new FileWriter(tempath);
PrintWriter pw=new PrintWriter(fw);
String strcontent=request.getParameter("content");
pw.println(codetoString(strcontent).toString());
fw.close();
%>
<body>
<form id="form1" name="form1" method="post" action="ex29.jsp">
<p>新建文件名 </p>
<label>
<input name="textname" type="text" id="textname" size="16" />
</label>
<p>文件内容</p>
<p>
<label></label>
<label>
<textarea name="content" id="content">er</textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="提交" />
</label>
</p>
</form>
</body>
</html>

1.问题出现在
String strcontent=request.getParameter("content");
当你第一次访问该页面时,你的请求地址中并没有content这个参数,所以调用java代码时,你的strcontent得到的值为空。
2.问题解决方案
(1)得到的strcontent有空判断,例如:pw.println(codetoString(strcontent).toString()); 这行可改为

pw.println(codetoString(strcontent==null?"":strcontent).toString());
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-15
<textarea name="content" id="content">er</textarea>

你在这个里面输入东西了没
第2个回答  2009-02-15
<textarea>并非form组件,不能request,
String strcontent=request.getParameter("content");
并不能得到值
如要传值你可以用<input type="hidden" name="content" value="">
将<textarea name="content" id="content">er</textarea>
改为<textarea name="text" id="text">er</textarea>
用<Script language="javascript">
function getText(){
form1.content.value = text.innerHTML;
}
</script>
给<input type="hidden" name="content" value="">传value值
在<form id="form1" name="form1" method="post" action="ex29.jsp">中加onSubmit="getText()"事件,这样就可以了
第3个回答  2009-02-16
tomcat 在运行jsp前,会在work文件夹下写入翻译好了的java文件,比如:
C:\server\apache-tomcat-6.0.10\work\Catalina\localhost\app_name\
找到你的文件“ex29_jsp.java”看看第74行,什么原因就知道个八九不离十了。

怀疑是跟创立文件有关:(e盘是否存在?有无权限?)
File file1=new File("e:/ex29");
file1.mkdirs();
第4个回答  2009-02-17
你第一次登陆网页的时候根本没有<input name="textname" type="text" id="textname" size="16" /> <textarea name="content" id="content">er</textarea> 这些提交过来,故你String textname=request.getParameter("textname"); String strcontent=request.getParameter("content"); 这些都是null,不信你打印出来看一下。
第5个回答  2009-02-18
空指针错误,检查你的对象哪个可能没有得到值
相似回答
大家正在搜