日期:2014-05-20  浏览次数:20773 次

jsp问题
<%
String   name=request.getParameter( "name ");
String   pass=request.getParameter( "pass ");

if(name.equals( "na "))
{
      session.setAttribute( "name ",name);
      session.setAttribute( "pass ",pass);
      response.sendRedirect( "loginsuccess.jsp ");
}
%>

这是我jsp的一段代码,但运行报错
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)


如果将if(name== "na ")   则运行正常,但这方法不能判断字符串相等,请指点,谢谢。




------解决方案--------------------
先判断name是不是为空
------解决方案--------------------
是否你的name为null?
if(null != name && name.equals( "na ")) ...
------解决方案--------------------
<%!
public String deNull(String s)
{
return s==null? " ":s.trim();
}
%>
<%
String name=deNull(request.getParameter( "name "));
String pass=deNull(request.getParameter( "pass "));
if(name.equals( "na "))
{
session.setAttribute( "name ",name);
session.setAttribute( "pass ",pass);
response.sendRedirect( "loginsuccess.jsp ");
}
%>

------解决方案--------------------
为什么还要判断为不为空亚?不明白为什么出错
------解决方案--------------------
String name=request.getParameter( "name ");
如果 并没有这个 "name "
则request取过来的是null
------解决方案--------------------
进行对象操作时先判断对象是否为空,是一个良好的习惯。
------解决方案--------------------
楼上说的有道理
------解决方案--------------------
再告诉你一个办法,你的这类情况经常发生的。以后如果你改成 "na ".equals(name)方法写就会避免!