先用Form表单做了提交
String str=getParameter(name);
String str1=new String(str.getBytes("ISO-8859-1"),"GB2312");
....
BufferedWriter bw=new BufferedWriter(docfile);
bw.write("str1");
...
然后打开连接的时候就会提示NullPointerException,做了catch还是提示
但是把
String str1=new String(str.getBytes("ISO-8859-1"),"GB2312");
放到
BufferedWriter bw=new BufferedWriter(docfile);
之后就不会提示了,工作正常.
在开头做了<%@ page contentType="text/html;charset=GB2312"%>了
谁能告诉下这是为什么啊,谢谢了
12 个解决方案
#1
String str=
requestgetParameter(name);
这个加上红色部分在试试!
这个加上红色部分在试试!
#2
哦,我发贴的时候忘了写上request.了.代码里是有的
#3
docfile是从哪来的啊?
#4
不知所云!能不能把所有代码都贴出来啊!
#5
其他的代码都省略了,只显示了出问题的部分
#6
请发全部代码
怀疑一:
String str=request.getParameter(name);
--->String str=request.getParameter("name");
怀疑一:
String str=request.getParameter(name);
--->String str=request.getParameter("name");
#7
str==null了,也就是你的request里面这个属性值是空的
#8
请将描述的再详细一点,便于大家分析
#9
附上代码,谢谢大家了
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%>
<HTML>
<BODY>
<Form method=post name=form1>
<input type="text" name="mingzi" value="name">
<input type="text" name="fenshu" value="0">
<input type="text" name="te" value="身高" >
<input type="submit" name="submit" value="送出">
</form>
<%
String name1=request.getParameter("mingzi");
String score=request.getParameter("fenshu");
String e1=request.getParameter("te");
//String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
//String score2=new String(score.getBytes("ISO-8859-1"),"GB2312");
//String e2=new String(e1.getBytes("ISO-8859-1"),"GB2312");
try
{
File dirfile=new File("C:/","score");
dirfile.mkdir();
File scorefile=new File(dirfile,"score.txt");
FileWriter docfile=new FileWriter(scorefile);
BufferedWriter bf=new BufferedWriter(docfile);
String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
String score2=new String(score.getBytes("ISO-8859-1"),"GB2312");
String e2=new String(e1.getBytes("ISO-8859-1"),"GB2312");
bf.write(name2);
bf.newLine();
bf.write(score2);
bf.newLine();
bf.write(e2);
bf.newLine();
bf.flush();
bf.close();
docfile.close();
}
catch(IOException e)
{}
catch(NullPointerException e)
{}
%>
</BODY>
</HTML>
//String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
如果和
String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
更换位置的话,编译就会报错,不明原因,谢谢大家指导
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%>
<HTML>
<BODY>
<Form method=post name=form1>
<input type="text" name="mingzi" value="name">
<input type="text" name="fenshu" value="0">
<input type="text" name="te" value="身高" >
<input type="submit" name="submit" value="送出">
</form>
<%
String name1=request.getParameter("mingzi");
String score=request.getParameter("fenshu");
String e1=request.getParameter("te");
//String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
//String score2=new String(score.getBytes("ISO-8859-1"),"GB2312");
//String e2=new String(e1.getBytes("ISO-8859-1"),"GB2312");
try
{
File dirfile=new File("C:/","score");
dirfile.mkdir();
File scorefile=new File(dirfile,"score.txt");
FileWriter docfile=new FileWriter(scorefile);
BufferedWriter bf=new BufferedWriter(docfile);
String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
String score2=new String(score.getBytes("ISO-8859-1"),"GB2312");
String e2=new String(e1.getBytes("ISO-8859-1"),"GB2312");
bf.write(name2);
bf.newLine();
bf.write(score2);
bf.newLine();
bf.write(e2);
bf.newLine();
bf.flush();
bf.close();
docfile.close();
}
catch(IOException e)
{}
catch(NullPointerException e)
{}
%>
</BODY>
</HTML>
//String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
如果和
String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
更换位置的话,编译就会报错,不明原因,谢谢大家指导
#10
首次请求这个jsp的时候,request.getParameter("mingzi");
是取不到值的。
你可以尝试首次请求的时候,传一些参数。
当然,实际上,你是应该判断一下这个请求是首次请求,还是由form submit提交上来的。
是取不到值的。
你可以尝试首次请求的时候,传一些参数。
当然,实际上,你是应该判断一下这个请求是首次请求,还是由form submit提交上来的。
#11
LZ接受请求的是同一个页面,你在使用
name1.getBytes(...);
score2.getBytes(...);
e1.getBytes(...);
之前先判断下就ok了,因为你第一次请求确实没有值,不就
报告异常了?
name1.getBytes(...);
score2.getBytes(...);
e1.getBytes(...);
之前先判断下就ok了,因为你第一次请求确实没有值,不就
报告异常了?
#12
正解,谢谢了
#1
String str=
requestgetParameter(name);
这个加上红色部分在试试!
这个加上红色部分在试试!
#2
哦,我发贴的时候忘了写上request.了.代码里是有的
#3
docfile是从哪来的啊?
#4
不知所云!能不能把所有代码都贴出来啊!
#5
其他的代码都省略了,只显示了出问题的部分
#6
请发全部代码
怀疑一:
String str=request.getParameter(name);
--->String str=request.getParameter("name");
怀疑一:
String str=request.getParameter(name);
--->String str=request.getParameter("name");
#7
str==null了,也就是你的request里面这个属性值是空的
#8
请将描述的再详细一点,便于大家分析
#9
附上代码,谢谢大家了
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%>
<HTML>
<BODY>
<Form method=post name=form1>
<input type="text" name="mingzi" value="name">
<input type="text" name="fenshu" value="0">
<input type="text" name="te" value="身高" >
<input type="submit" name="submit" value="送出">
</form>
<%
String name1=request.getParameter("mingzi");
String score=request.getParameter("fenshu");
String e1=request.getParameter("te");
//String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
//String score2=new String(score.getBytes("ISO-8859-1"),"GB2312");
//String e2=new String(e1.getBytes("ISO-8859-1"),"GB2312");
try
{
File dirfile=new File("C:/","score");
dirfile.mkdir();
File scorefile=new File(dirfile,"score.txt");
FileWriter docfile=new FileWriter(scorefile);
BufferedWriter bf=new BufferedWriter(docfile);
String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
String score2=new String(score.getBytes("ISO-8859-1"),"GB2312");
String e2=new String(e1.getBytes("ISO-8859-1"),"GB2312");
bf.write(name2);
bf.newLine();
bf.write(score2);
bf.newLine();
bf.write(e2);
bf.newLine();
bf.flush();
bf.close();
docfile.close();
}
catch(IOException e)
{}
catch(NullPointerException e)
{}
%>
</BODY>
</HTML>
//String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
如果和
String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
更换位置的话,编译就会报错,不明原因,谢谢大家指导
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%>
<HTML>
<BODY>
<Form method=post name=form1>
<input type="text" name="mingzi" value="name">
<input type="text" name="fenshu" value="0">
<input type="text" name="te" value="身高" >
<input type="submit" name="submit" value="送出">
</form>
<%
String name1=request.getParameter("mingzi");
String score=request.getParameter("fenshu");
String e1=request.getParameter("te");
//String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
//String score2=new String(score.getBytes("ISO-8859-1"),"GB2312");
//String e2=new String(e1.getBytes("ISO-8859-1"),"GB2312");
try
{
File dirfile=new File("C:/","score");
dirfile.mkdir();
File scorefile=new File(dirfile,"score.txt");
FileWriter docfile=new FileWriter(scorefile);
BufferedWriter bf=new BufferedWriter(docfile);
String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
String score2=new String(score.getBytes("ISO-8859-1"),"GB2312");
String e2=new String(e1.getBytes("ISO-8859-1"),"GB2312");
bf.write(name2);
bf.newLine();
bf.write(score2);
bf.newLine();
bf.write(e2);
bf.newLine();
bf.flush();
bf.close();
docfile.close();
}
catch(IOException e)
{}
catch(NullPointerException e)
{}
%>
</BODY>
</HTML>
//String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
如果和
String name2=new String(name1.getBytes("ISO-8859-1"),"GB2312");
更换位置的话,编译就会报错,不明原因,谢谢大家指导
#10
首次请求这个jsp的时候,request.getParameter("mingzi");
是取不到值的。
你可以尝试首次请求的时候,传一些参数。
当然,实际上,你是应该判断一下这个请求是首次请求,还是由form submit提交上来的。
是取不到值的。
你可以尝试首次请求的时候,传一些参数。
当然,实际上,你是应该判断一下这个请求是首次请求,还是由form submit提交上来的。
#11
LZ接受请求的是同一个页面,你在使用
name1.getBytes(...);
score2.getBytes(...);
e1.getBytes(...);
之前先判断下就ok了,因为你第一次请求确实没有值,不就
报告异常了?
name1.getBytes(...);
score2.getBytes(...);
e1.getBytes(...);
之前先判断下就ok了,因为你第一次请求确实没有值,不就
报告异常了?
#12
正解,谢谢了