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

这段程序的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));
下面的也都全改了,把字符串放在前面