首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

新手,遇到一个有关问题,页面表单提交后无任何反应

2012-03-30 
新手,遇到一个问题,页面表单提交后无任何反应。模仿javaweb开发书上的例子。login.jsp代码如下:Java code%@

新手,遇到一个问题,页面表单提交后无任何反应。
模仿javaweb开发书上的例子。
login.jsp代码如下:

Java code
<%@ page contentType="text/html" pageEncoding="GBK"%><%@ page import="java.util.*"%><html><head><title>www.mldnjava.cn,MLDN高端Java培训</title></head><script language="javascript">    function validate(f){        if(!(/^\w{5,15}$/.test(f.userid.value))){            alert("用户ID必须是5~15位!") ;            f.userid.focus() ;            return false ;        }        if(!(/^\w{5,15}$/.test(f.userpass.value))){            alert("密码必须是5~15位!") ;            f.userpass.focus() ;            return false ;        }    }</script><body><h2>用户登录程序</h2><%    request.setCharacterEncoding("GBK") ;%><%    List<String> info = (List<String>) request.getAttribute("info") ;    if(info != null){    // 有信息返回        Iterator<String> iter = info.iterator() ;        while(iter.hasNext()){%>            <h4><%=iter.next()%></h4><%        }    }%><form action="LoginServlet" method="post" onSubmit="return validate(this)">    用户ID:<input type="text" name="userid"><br>    密&nbsp;&nbsp;码:<input type="password" name="userpass"><br>    <input type="submit" value="登陆">    <input type="reset" value="重置"></form></body></html>



loginServlet的代码如下:
Java code
package org.lxh.mvcdemo.servlet ;import java.io.* ;import java.util.* ;import javax.servlet.* ;import javax.servlet.http.* ;import org.lxh.mvcdemo.factory.* ;import org.lxh.mvcdemo.vo.* ;public class LoginServlet extends HttpServlet {    /**     *      */    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{        String path = "login.jsp" ;        String userid = req.getParameter("userid") ;        String userpass = req.getParameter("userpass") ;        List<String> info = new ArrayList<String>() ;    // 收集错误        if(userid==null || "".equals(userid)){            info.add("用户id不能为空!") ;        }        if(userpass==null || "".equals(userpass)){            info.add("密码不能为空!") ;        }        if(info.size()==0){    // 里面没有记录任何的错误            User user = new User() ;            user.setUserid(userid) ;            user.setPassword(userpass) ;            try{                if(DAOFactory.getIUserDAOInstance().findLogin(user)){                    info.add("用户登陆成功,欢迎" + user.getName() + "光临!") ;                } else {                    info.add("用户登陆失败,错误的用户名和密码!") ;                }            }catch(Exception e){                e.printStackTrace() ;            }        }        req.setAttribute("info",info) ;        req.getRequestDispatcher(path).forward(req,resp) ;    }    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{    //    PrintWriter out=resp.getWriter();    //    out.println("hello shanghai .");        this.doGet(req,resp) ;    }}


打开login.jsp 输入admin admin ,提交
除了地址栏一闪而过,页面无任何反应。、

是数据库不对,还是什么。不知道怎么调试?
请指教。


[解决办法]
JScript code
        if(!(/^\w{5,15}$/.test(f.userid.value))){            alert("用户ID必须是5~15位!") ;            f.userid.focus() ;            return false ;        }        if(!(/^\w{5,15}$/.test(f.userpass.value))){            alert("密码必须是5~15位!") ;            f.userpass.focus() ;            return false ;        }    } 


[解决办法]
f6 調試 調出 variables 看各參數的值,或者用打印的方法
[解决办法]
<form action="LoginServlet" method="post" onSubmit="return validate(this)">
用户ID:<input type="text" name="userid"><br>
密&nbsp;&nbsp;码:<input type="password" name="userpass"><br>
<input type="submit" value="登陆">
<input type="reset" value="重置">
</form>

楼主的验证怎么放在form<form action="LoginServlet" method="post" onSubmit="return validate(this)">
应该放在
<input type="submit" value="登陆">
里面

type="submit" 换成 type="button"
不然的话js验证不管是否正确都会执行表单提交,因为你的按钮是submit类型也就是提交类型。

[解决办法]
原因分析:
1servlet在web.xml中有没有配置
2JS严重如果验证通过给一个返回值true
3给每个表单写生id

热点排行