为什么这里loginUser==""可以 而loginUser==null却不可以

为什么这里loginUser==""可以 而loginUser==null却不可以

package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ContextFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest hrequest=(HttpServletRequest)request;
HttpServletResponse hresponse=(HttpServletResponse)response;
String loginUser=(String)hrequest.getServletContext().getAttribute("loginUser");
if(loginUser=="") {
hresponse.sendRedirect(hrequest.getContextPath()+"/index.jsp?flag=1");
return;
}else {
chain.doFilter(hrequest, hresponse);
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}

我这里不是用session存入 而是用context存入  课上的老师用的是loginUser==null来判断条件

可是我loginUser==null却无法判断 只能用loginUser==""来判断

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

你好同学,如下图所示,你再判断loginUser是否为空字符串就可以了,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c6b66420001a0f905390119.jpg

chrismorgen 2019-02-18 10:07:28

你好同学,你理解的是没有问题的,也可以判断String是否为null,不过要先将变量赋值为null就可以了哦,不过比较字符串是是否为空时,还是推荐使用空字符串,同时也可以判断这个变量是否为null,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5c6a12dc000113a805480177.jpg

  • 提问者 精慕门053240 #1
    我这里的问题主要是不知道为什么我不能像老师那里用null 而是用"". 我这里和老师不同的是:用的不是session而是用context来存储loginUser.
    2019-02-18 10:59:09
  • 提问者 精慕门053240 #2
    我另外试了下session的方法存储loginUser 也是只能用""来比较才能顺利执行程序. 我用的是Chrom浏览器
    2019-02-18 11:47:56
  • chrismorgen 回复 提问者 精慕门053240 #3
    建议同学导入老师的源码试一下,看是否可以正常运行,祝学习愉快~
    2019-02-18 16:55:44
chrismorgen 2019-02-17 13:25:08

你好同学,loginUser是String类型的变量,而不是对象哦,这里比较对象用null来比较,而比较String类型的变量用""(也就是空字符串来比较),祝学习愉快~

  • 提问者 精慕门053240 #1
    那为什么课上老师用null来比较就可以呢?
    2019-02-17 13:47:01
  • 提问者 精慕门053240 #2
    我记得 null代表空指针,"代表空字符串" 两者都可以赋给String, 只是""不代表null
    2019-02-17 15:02:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师