为什么不会返回错误的提示框,比如用户名为空的

tongxin9377 2006-02-28 11:07:40
为什么不会返回错误的提示框,比如用户名为空的应该返回一个提示框才对呀,帮忙
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="3;url=denglu.jsp">
<title>无标题文档</title>
<%
request.setCharacterEncoding("gb2312");
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Tomcat4\\webapps\\ROOT\\web1\\web\\db1.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//ResultSet rs=st;
String errmsg="错误!";
boolean founderr=false;
String name=errmsg;
String userpassword=errmsg;
String reuserpassword=errmsg;

if(request.getParameter("name").equals("")){
errmsg=errmsg+"用户名不能为空,";
founderr=true;
}else name=request.getParameter("name");

if(request.getParameter("userpassword").equals("")){
errmsg=errmsg+"密码不能为空,";
founderr=true;
}else userpassword=request.getParameter("userpassword");

if(request.getParameter("reuserpassword").equals("")){
errmsg=errmsg+"密码确认不能为空,";
founderr=true;
}else reuserpassword=request.getParameter("reuserpassword");

if(!userpassword.equals(reuserpassword)){
errmsg=errmsg+"两次密码不同!";
founderr=true;
}
String funtion=request.getParameter("funtion");
String partment=request.getParameter("partment");


String sql="select * from user where name='"+name+"'";
ResultSet rs=st.executeQuery(sql);
if(rs.next()){
errmsg=errmsg+"用户名已被别人注册";
founderr=true;
}
else

if(founderr==false) {
String sql1="insert into user(name,password,partment,funtion)values('"+name+"','"+userpassword+"','"+partment+"','"+funtion+"')";
st.executeUpdate(sql1);
}
st.close();
con.close();
%>
</head>
<body>
<!--<jsp:forward page="denglu.jsp">
</jsp:forward> -->
</body>
</html>
...全文
145 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
doway 2006-03-01
楼主再说清楚些,看不明白。
回复
cucuchen 2006-03-01
同意 xinxideyilian(心细的依恋) ( ) !!!
回复
xinxideyilian 2006-03-01
你的程序中虽然定了errmsg这个字段,但是你根本就没有让他显示,怎么能给你弹出提示框呢
回复
xinxideyilian 2006-03-01
你可以做前端验证吗
这样还可以减轻服务器的
用javascript写
很简单的
如果用你的这个中方法也可以的
if(request.getParameter("username")==null||request.getParameter("username").equals(""))
<%
out.println("<script language=\"JavaScript\">");
out.println("<!--");
out.println("alert(\'用户名输入不能为空!\');");
out.println("history.back(1);");
out.println("//-->");
out.println("</script>");
%>


回复
tongxin9377 2006-03-01
谢谢楼上的提示,但是现在想知道的是这代码有什么问题,应该也可以实现呀,
回复
cucuchen 2006-03-01
这个应该叫客户端js验证...请楼主参考一下我的代码
<%@ page import="com.personalerp.workflow.cookie.CookieManager" %>
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:setBundle basename="login" var="login"/>
<html>
<head>
<link rel="stylesheet" href="../main.css" type="text/css">
<title>login</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript" type="text/JavaScript">
function checkLoginForm() {
if (document.loginForm.username.value.length <= 0) {
alert('Please enter Username');
document.loginForm.username.focus();
return false;
}
if (document.loginForm.password.value.length <= 0) {
alert('Please enter Password');
document.loginForm.password.focus();
return false;
}
else {
return true;
}
}
function clearTextField() {
document.loginForm.username.value = "";
document.loginForm.password.value = "";
}

</script>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<body style="background:#EEEEEE">
<form name="loginForm" action="./login.do" method="post">
<table width="100%" border="0">

<tr>
<td> </td>
<td>
<div align="center"><img src="images/perp_login.jpg" width="640" height="480">
</div>

<div id="Layer1" style="position:absolute; width:300px; height:182px; z-index:1; left: 415px; top: 298px;">

<table width="379" border="0" align="center">
<tr>
<td width="66"><font color="#FFFFFF">
<fmt:message key="username" bundle="${login}"/></font>
</td>
<td width="173"><input type="text" name="username" value="<%=CookieManager.getCookieUsername()%>">
</td>
<td width="28"> </td>
<td width="94"> </td>
</tr>
<tr>
<td><font color="#FFFFFF"><fmt:message key="password" bundle="${login}"/></font></td>
<td><input type="password" name="password"></td>
<td><input type="checkbox" name="rememberflag" value="1"></td>
<td><font color="#FFFFFF"><fmt:message key="remember" bundle="${login}"/></font></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>

<td> </td>
<td><input type="submit" name="submit" value="<fmt:message key="submit" bundle="${login}"/>"
onClick="return checkLoginForm()">
<input type="button" name="reset" value="<fmt:message key="reset" bundle="${login}"/>"
onClick="clearTextField()"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><a href="../mail.jsp"><fmt:message key="forget" bundle="${login}"/></a></td>
<td> </td>
<td> </td>
</tr>
</table>
</form>

</body>
</html>
回复
tongxin9377 2006-03-01
比如说在登陆界面,如果我没有输入用户名,或者没有输入密码的话,应该弹出一个提示框,说明用户名没有输入或者密码没有输入,可是运行的话,却没有提示,帮忙分析一下,谢谢.
回复
wsk_228 2006-03-01
request.getParameter("name")的结果有可能是"",也有可能是null。所以楼上的答案是可行的
回复
jfy3d 2006-03-01
if(request.getParameter("userpassword")==null||request.getParameter("reuserpassword").equals("")){
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-02-28 11:07
社区公告
暂无公告