当前位置: 代码迷 >> Java相关 >> 这段程序的if、else语句判断是不是哪里出错了?该如何解决
  详细解决方案

这段程序的if、else语句判断是不是哪里出错了?该如何解决

热度:3598   发布时间:2013-02-25 21:47:52.0
这段程序的if、else语句判断是不是哪里出错了?
<%@ page contentType="text/html;charset=GBK"%>
<html>
<body>
<%
request.setCharacterEncoding("GBK");
String str=request.getParameter("action").trim();
if(str.equals("1")){
String userName=request.getParameter("username").trim();
String userPassword=request.getParameter("userpassword").trim();
if(userName.equals("")||userPassword.equals("")){
%>
<jsp:forward page="loginResult.jsp">
<jsp:param name="userName" value="用户名或密码为空"/>
</jsp:forward>
<%}else if(!userName.equals("abc")||!userName.equals("123")){%>
<jsp:forward page="loginResult.jsp">
<jsp:param name="userName" value="用户名或密码错误"/>
</jsp:forward>
<%}else{%>
<jsp:forward page="loginResult.jsp">
<jsp:param name="userName" value="刘博"/>
</jsp:forward>
<%}
}
else{

}
%>

</body>
</html>

------解决方案--------------------------------------------------------
String str=request.getParameter("action").trim()

通过传参获取,有可能参数是空值,,会有可能抛空指针异常。。。
------解决方案--------------------------------------------------------
JSP 中不要出现 <% %> 之类的东西,建议你应该先从 Servlet 学起,而不是从 JSP 开始。
------解决方案--------------------------------------------------------
if(str.equals("1"))
改成if("1".equals(str));
下面的也都全改了,把字符串放在前面
  相关解决方案