我做的是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"........??

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jingulang】截止到2008-07-23 17:56:45的历史汇总数据(不包括此帖):
    发帖的总数量:33                       发帖的总分数:1070                     每贴平均分数:32                       
    回帖的总数量:433                      得分贴总数量:171                      回帖的得分率:39%                      
    结贴的总数量:32                       结贴的总分数:1020                     
    无满意结贴数:2                        无满意结贴分:40                       
    未结的帖子数:1                        未结的总分数:50                       
    结贴的百分比:96.97 %               结分的百分比:95.33 %                  
    无满意结贴率:6.25  %               无满意结分率:3.92  %                  
    值得尊敬
      

  2.   

    另外有没有什么先进点的办法验证登录这个问题啊我只会写JAVA代码  其他JS什么的都不会  还有什么框架之类的  也不会
      

  3.   

    String name = (String)request.getParameter("name");
    如果name==null,你根本不可能调用它的方法,name.equals()这个地方就直接抛异常了.
    你中间把name的值输出一下看看是什么.
      

  4.   

    System.out.println(name); 这样可以输出null的话说明name就是null
      

  5.   

    好像这样也无法区分,
     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的值.
      

  6.   

    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
      

  7.   

    也就是说按我正常的理解和思路name传到reply.jsp中做操作照样用if(name==null)但结果让我失望   结果是name永远都不为空....
    打印name是null
    getClass是class java.lang.String ....
      

  8.   

    这种问题我遇到过
    先这样String othername=request.getParameter("name")==null?"":request.getParameter("name").toString();
    这样就可以了
    你试试吧,呵呵
      

  9.   

    功能是实现了我主要是不明白为什么传到第二个页面就成了字符串"null"莫非<a href="reply.jsp?name=<%=name%>"> 中  里面不让传null??
      

  10.   

    晕,我还以为用的是request.getAttribute()呢,用这个习惯了.
    看看是不是getParameter的问题.对象为空的时候返回的到底是什么.
      

  11.   

    是不是传递的时候把空对象转为"null"了.
      

  12.   

    估计是估计是~~另外请教楼上  request.getAttribute是什么时候用的我写了整个BBS也没用到这个方法啊是代替form表单里的hidden的作用吗??
      

  13.   

    也是获取参数,不过得到的是对象类型的,一般情况需要强制类型转换.因为你不可能老是传递字符串吧.比如
      Student student=new Student();
      request.setAttribute("student",student);取的时候: 使用字符串"student"标示这个对象
     Student student=(Student)request.getAttribute("student");
     if(student!=null){
       //处理
    }
      

  14.   

    明白了   传递对象!!学习了  现在我把我的BBS改进改进  尽量有点"形"  呵呵
      

  15.   

    你要不是从一个页面传过来的request得不到的