equals 返回值为 false
小弟编写了一段servlet的代码,从session取值,然后与一个字符串比较,用来判断权限的,可是一直返回值为false,请各位大神帮忙解救.下面是servlet的部分代码:equals session --------------------编程问答-------------------- 你的值放到session里了吗。。。 --------------------编程问答-------------------- 已经放了的,就是测试也能看到那个值是edit --------------------编程问答-------------------- session.getAttribute("ht_p").trim()
package myservlet.control;
import mybean.data.*;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HandleUpload extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(Exception e){}
}
public void doPost(HttpServletRequest request,HttpServletResponse
response)
throws ServletException,IOException{
HttpSession session=request.getSession();
Login login=(Login)session.getAttribute("login");
boolean ok=true;
if(login==null){
ok=false;
response.sendRedirect("login.jsp");
}
if(ok==true){
if("edit".equals(session.getAttribute("ht_p"))) {
String logname=login.getLogname();
uploadFileMethod(request,response,logname);
} else {
response.setCharacterEncoding("GB2312");
PrintWriter out = response.getWriter();
out.print(str);
}
}
}
试试 --------------------编程问答-------------------- 或者在那个if判断上面,增加打印:System.out.println(session.getAttribute("ht_p"));
看看打印了什么 --------------------编程问答--------------------
用.trim的时候就编译错误了
System.out.println("<th>"+session.getAttribute("ht_p")+"</th>");
if("edit".equals(session.getAttribute("ht_p"))) {
String logname=login.getLogname();
uploadFileMethod(request,response,logname);
} else { response.setCharacterEncoding("GB2312");
PrintWriter out = response.getWriter();
out.print("<th>这是if里面的"+session.getAttribute("ht_p")+"</th>");}
我是这样加的代码,但是他只是显示了这是if里面的edit ,所以是不是说其实他并没有去执行System.out.println(session.getAttribute("ht_p"));?
--------------------编程问答--------------------
String htp = ((String)session.getAttribute("ht_p")).trim();
System.out.println("htp="+htp);
if("edit".equals(session.getAttribute("ht_p")))
如果没打印,说明这个if(ok)的分支没进来,说明ok为false了。 --------------------编程问答-------------------- 你这个if、if判断的不会传不过去(进不去)吧,调试看看 --------------------编程问答--------------------
我把那个if(ok)直接改为else都没用
要怎么改呢? --------------------编程问答--------------------
我现在觉得应该是这个的问题
不是equals的问题 --------------------编程问答--------------------
直接把if删掉 --------------------编程问答-------------------- 第32行 if("edit".equals(session.getAttribute("ht_p")))中,session.getAttrebute得到的是Object对象,用object来和String作equals比较,应该只能得到false吧。 --------------------编程问答--------------------
第32行 if("edit".equals(session.getAttribute("ht_p")))中,session.getAttrebute得到的是Object对象,用object来和String作equals比较,应该只能得到false吧。
但是如果String str="edit",这样也不行吖 --------------------编程问答-------------------- Login login=(Login)session.getAttribute("login");
想问一下这样能得到一个对象么
补充:Java , Web 开发