我X~这是怎么回事啊,大家帮我看看

jingulang 2008-07-23 05:56:39
我做的是BBS 在写关于登录方面的代码 方法可能很土 但我目前这会这个

我打开bbs.jsp主页面就验证用户名,代码如下,代码里我把<% %>省略掉先


String name = request.getParameter("name");

/********检测代码*********/
//System.out.println(name); 这里输出null
//System.out.println(name.getClass()); //这里报空指针错 说明跟我理解的一样


//这是如果已登录或未登录就进行的操作
if(name ==null)
{
<td width="81"><a href="main.jsp">登录</a>
<td width="81"><a href="userLogin.jsp">注册</a>

} else
{
<td><%=name%> 您好</td>
}

...

//电击标题连接到reply.jsp中去,把贴子ID和用户名name继续传过去
<A id=jive-thread-3 href="reply.jsp?id=<%=a.getId()%>&name=<%=name%>">



我再通过点这个主页面里的"标题"连接到回复页面到reply.jsp文件中.继续将这个name传过去.

到了reply.jsp里就不能用name==null了 奇怪最后我用的是name.equals("null");完成的功能,这是为什么啊???

repay.jsp验证部分代码如下,很奇怪...

String name = request.getParameter("name");

/******检测代码*******/
//System.out.println(name); 这里还是输出null
//System.out.println(name.getClass()); 这里输出class java.lang.String.....

if (name.equals("null"))
{
<A class=jive-acc-login href="main.jsp">登陆
} else
{
<A class=jive-acc-login href="main.jsp"><%=name%> 您好</A>
}




到底是怎么回事啊 为什么一个null是空的意思 一个null是字符串"null"........??
...全文
264 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZangXT 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 dongqdonglin 的回复:]
你要不是从一个页面传过来的request得不到的
[/Quote]
那你还用request传吗
dongqdonglin 2008-07-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ZangXT 的回复:]
也是获取参数,不过得到的是对象类型的,一般情况需要强制类型转换.因为你不可能老是传递字符串吧.

比如
Student student=new Student();
request.setAttribute("student",student);

取的时候: 使用字符串"student"标示这个对象
Student student=(Student)request.getAttribute("student");
if(student!=null){
//处理
}
[/Quote]
你要不是从一个页面传过来的request得不到的
dongqdonglin 2008-07-23
  • 打赏
  • 举报
回复
你是从一个页面传过来的?
jingulang 2008-07-23
  • 打赏
  • 举报
回复
明白了 传递对象!!

学习了 现在我把我的BBS改进改进 尽量有点"形" 呵呵
ZangXT 2008-07-23
  • 打赏
  • 举报
回复
也是获取参数,不过得到的是对象类型的,一般情况需要强制类型转换.因为你不可能老是传递字符串吧.

比如
Student student=new Student();
request.setAttribute("student",student);

取的时候: 使用字符串"student"标示这个对象
Student student=(Student)request.getAttribute("student");
if(student!=null){
//处理
}
jingulang 2008-07-23
  • 打赏
  • 举报
回复
估计是估计是~~

另外请教楼上 request.getAttribute是什么时候用的

我写了整个BBS也没用到这个方法啊

是代替form表单里的hidden的作用吗??
ZangXT 2008-07-23
  • 打赏
  • 举报
回复
是不是传递的时候把空对象转为"null"了.
ZangXT 2008-07-23
  • 打赏
  • 举报
回复
晕,我还以为用的是request.getAttribute()呢,用这个习惯了.
看看是不是getParameter的问题.对象为空的时候返回的到底是什么.
jingulang 2008-07-23
  • 打赏
  • 举报
回复
功能是实现了

我主要是不明白为什么传到第二个页面就成了字符串"null"

莫非<a href="reply.jsp?name=<%=name%>"> 中 里面不让传null??
yu_gx 2008-07-23
  • 打赏
  • 举报
回复
这种问题我遇到过
先这样String othername=request.getParameter("name")==null?"":request.getParameter("name").toString();
这样就可以了
你试试吧,呵呵
jingulang 2008-07-23
  • 打赏
  • 举报
回复
也就是说

按我正常的理解和思路

name传到reply.jsp中做操作

照样用if(name==null)

但结果让我失望 结果是name永远都不为空....
打印name是null
getClass是class java.lang.String ....
jingulang 2008-07-23
  • 打赏
  • 举报
回复
request.getParameter返回的是一个字符串吧 还用强制转换吗

我第一个页面bbs.jsp里 没任何问题 我继续将name从bbs.jsp传到reply.jsp中

我最开始在reply.jsp中写的代码也是if(name==null)之类

但运行后的结果不对劲....我研究了半天

最后用在reply.jsp中用if (name.equals("null")) 才完成了功能

我感到奇怪 所以做了测试代码
bbs.jsp中是
//System.out.println(name); 这里输出null
//System.out.println(name.getClass()); //这里报空指针错 说明跟我理解的一样

reply.jsp中是
//System.out.println(name); 这里还是输出null
//System.out.println(name.getClass()); 这里输出class java.lang.String

ZangXT 2008-07-23
  • 打赏
  • 举报
回复
好像这样也无法区分,
String name=null;
System.out.println(name);
name="null";
System.out.println(name);
这两种情况输出一样.
还是根据if(name==null){
System.out.println("this is a null reference");
}
else{
System.out.println(name);
}
来试验一下吧.
或者直接在页面里输出一下name的值.
ZangXT 2008-07-23
  • 打赏
  • 举报
回复
System.out.println(name); 这样可以输出null的话说明name就是null
ZangXT 2008-07-23
  • 打赏
  • 举报
回复
String name = (String)request.getParameter("name");
如果name==null,你根本不可能调用它的方法,name.equals()这个地方就直接抛异常了.
你中间把name的值输出一下看看是什么.
jingulang 2008-07-23
  • 打赏
  • 举报
回复
另外有没有什么先进点的办法验证登录这个问题啊

我只会写JAVA代码 其他JS什么的都不会 还有什么框架之类的 也不会

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧