读书人

这段程序的if、else语句判断是不是哪里

发布时间: 2012-03-19 22:03:04 作者: rapoo

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

读书人网 >Java相关

热点推荐