读书人

jsp 传值 post得不到值get可以为什

发布时间: 2012-01-11 22:28:46 作者: rapoo

jsp 传值 post得不到值,get可以,为什么
小弟写了个登陆界面,页面提交给servlet,提交方法用post得不到值,用get却可以。可是不能用get啊,不然密码地址栏里都出来了
登陆jsp如下:

HTML code
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html>    <head>        <title>网站信息管理系统</title>        <link href="home/home.css" rel="stylesheet" type="text/css" />    </head>    <body>        <Script>if(self!=top){top.location=self.location;}</script>                <script language="javascript">            function checklogin() {                if (document.login.name.value == '') {                    alert('请输入帐户');                    document.login.username.focus();                    return false                }                 if (document.login.password.value == '') {                    alert('请输入密码');                    document.login.password.focus();                    return false                }                if (document.login.yzm.value == '') {                    alert('请输入验证码');                    document.login.yzm.focus();                    return false                }            }        </script>        <div class="b_w">            <div class="l_t">                <div class="left l_title">                    网站管理系统                </div>                <div class="right">                    <a href="../"> <img src="home/icon_back.gif" alt="返回" hspace="4" vspace="8" border="0" /> </a>                    <a href="javascript:window.close()"><img src="home/icon_close.gif" alt="关闭" hspace="4" vspace="8" border="0" />                     </a>                </div>            </div>            <div class="l_bg">                    <form action="/SixMen/Employee" name="login" method="post"                        onSubmit="return checklogin();">                        <ul class="l_user">                        <li>                            帐户:                            <input name="name" size="14" type="text" class="l_input" />                        </li>                        <li>                            密码:                            <input name="password" size="14" type="password" class="l_input" />                        </li>                        <li>                            验证:                            <input name="yzm" id="yzm" size="3" type="text" class="l_input" />                            <img id=img src="home/img.jsp" alt="图片看不清?点击刷新"                                onclick="img.src='home/img.jsp?'+new Date().getTime()";>                        </li>                        <li>                            <input class="l_bnt" value="登 录" type="submit" />                            <input class="l_bnt" value="重 写" type="reset" />                        </li>                </ul>                    </form>            </div>            <div class="l_f">                <div class="left">                    <img src="home/f_l.gif" />                </div>                <div class="left">                    <img src="home/f_bg.gif" width="378" height="36" />                </div>                <div class="right">                    <img src="home/f_r.gif" />                </div>            </div>        </div>    </body></html> 




servlet代码如下:
Java code
package com.SixMen.Servlet.Employee;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.SixMen.Dao.Employee.EmployeeDao;import com.SixMen.Impl.Employee.EmployeeImpl;public class EmployeeLoginServlet extends HttpServlet {    /**     *      */    private static final long serialVersionUID = 1993790530757753459L;    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        HttpSession session = request.getSession();        String ses=(String)session.getAttribute("code");//获取验证码        System.out.println(ses);//////////////////////        String yzm=request.getParameter("yzm");//获取用户输入的验证码        System.out.println(yzm);//////////////////////        String name = request.getParameter("name");        System.out.println(name);//////////////////////        String pasw=request.getParameter("password");//获取用户名和密码                if(request.getAttribute("employeename")!=null){            request.getRequestDispatcher("Employee/alreadylogin.jsp").forward(request, response);//已经登录        }else if(name!=null){            System.out.println("开始登陆1");            if(ses.equals(yzm)){//验证码一致                EmployeeDao user=new EmployeeImpl();                if(user.CheckUser(name, pasw)){//判断用户登录信息                    session.setAttribute("employeename", name);//将用户姓名记入session                    session.setAttribute("dutyID", user.getUserdutyID(name));//将用户的岗位id记入session                    session.setAttribute("depname", user.getUserDepname(name));//将用户的部门name记入session                    request.getRequestDispatcher("/Employee/Storeroom").forward(request, response);//登陆成功                }else{                    request.getRequestDispatcher("/Employee/").forward(request, response);//登录失败                }            }else{                request.getRequestDispatcher("/Employee/").forward(request, response);//登录失败            }        }else{            System.out.println(name);            System.out.println("开始登陆2");            request.getRequestDispatcher("/Employee/login.jsp").forward(request, response);        }    }}



[解决办法]
request.getAttribute("yzm"); 改成这样 用POST 试试看
[解决办法]
你先把图片验证去掉试试看! 看能不能执行post方法!
[解决办法]
页面问题排查方法:
删除页面非关键内容,先保证主要功能可用,再添加其他的。

你的js,验证码,div,都是额外的。

尝试只保留form和必须的input。
[解决办法]
探讨

我现在把原来servlet中的代码原封不动的转移到另一个servlet2中
servlet2可以用的了

[解决办法]
post请求的时候,form提交的按钮太多,所以会出现这个错误,建议如楼上说的一样,把验证放到别的jsp中用<jsp:include page="验证的jsp页面"> 试试!

读书人网 >J2EE开发

热点推荐