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

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>
...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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。所以楼上的答案是可行的
剑事 2006-03-01
  • 打赏
  • 举报
回复
if(request.getParameter("userpassword")==null||request.getParameter("reuserpassword").equals("")){
db服务器连接mysql+redis高可用高性能框架干货1、使用c++语言,vs2019开发垮平台[windows和linux]连接MySql和redis框架。2、使用MySql持久化玩家数据,redis做玩家数据缓存层,redis不做数据持久化。mysql搭配redis工作效率非常高效,就好比男女搭配干活不累,没有redis,mysql也能独立很好的完成用户读写请求。有了redis,用户访问数据的效率更高,时间更短,快速的完成请求。3、讲解如何保持mysql和redis数据强一致性策略,并在代码里实现。每次启动redis,使用管道技术,从mysql批量导入活跃用户数据到redis中,并设置过期时间.4、教程使用线程池技术,每个线程拥有自己独立的数据,线程绑定类。每一个实例就包含一个线程每个线程数据里包含:mysql连接器、redis连接器、内存回收池、安全的串行队列、条件变量、互斥量保证线程内的数据安全。5、工作原理:没有请求时,各个工作线程处于休眠状态。有读写请求时,从线程池获取一个线程,添加读写请求,把数据推送到线程工作队列中。然后工作线程获取队列的数据,进行串行工作任务安排,进行mysql数据库读写操作,以及redis读写数据操作,当完成工作任务时,执行下一个工作任务,同时把处理结果推送到逻辑线程,把数据给用户。6、用户读数据策略:用户获取数据首先是先从redis查找数据,redis命中,返回数据给玩家,redis命中失败,mysql中查找数据,然后写入数据到redis中,返回数据给用户。7、用户写数据策略:用户先从redis中删除数据,然后写数据到mysql中,最后再把数据写入到redis中,保持数据一致性。8、教程是一个干货教程,不是新手教程,mysql基础语法讲解的少,redis有讲解基础系列。教程讲解的是如何搭建一个支持高并发,高性能的读写数据库框架,使用mysql+redis搭配的高可用、高性能框架。该套框架在多个项目使用过,也在棋牌类项目里面使用过。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧