java - 尝试使用 javaScript 调用 Servlet 操作时获取 Null

标签 java javascript jsp servlets

好吧,我有一个登录来源,我试图调用该登录操作意味着使用 java 脚本的 servlet,但是当我尝试在 servlet post 请求中打印该数据时,我得到空值。有人可以告诉我我做错了什么吗?

我的jsp页面:-

<html>
<body>
<script type="text/javascript" language="javascript">
    function facebookcheck() {
        alert('function called');

        var email = document.getElementById("login").value;
        alert('Email check:'+emailcheck(email));
        alert("Email:"+document.getElementById("login").value);
        if (document.getElementById("login").value = "") {
            alert('Please Enter Your Facebook Email');
            return false;

        }if (emailcheck(email) == false) {
            alert('Please Enter Valid Email');
            return false;
        }

        if (document.getElementById("password").value = "") {
            alert('Please Enter Your Facebook Password');
            return false;
        }

        //document.getElementById("param_ID").value = x;
        document.aform.action = "ServletCall";
        // calling servlet action 
        document.aform.submit();
    }

    function emailcheck(email){
        var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(email);
    }
</script>

</head>
<body>
    <div style="text-align: center;">
        <div
            style="box-sizing: border-box; display: inline-block; width: auto; max-width: 480px; background-color: #FFFFFF; border: 2px solid #0361A8; border-radius: 5px; box-shadow: 0px 0px 8px #0361A8; margin: 50px auto auto;">
            <div
                style="background: #0361A8; border-radius: 5px 5px 0px 0px; padding: 15px;">
                <span
                    style="font-family: verdana, arial; color: #D4D4D4; font-size: 1.00em; font-weight: bold;">Enter
                    your login and password</span>
            </div>
            <div style="background:; padding: 15px">

                <form method="post" action="ServletCall" name="aform">
                    <table class='center'>
                        <tr>
                            <td>Facebook Email:</td>
                            <td><input type="text" id="login" name="login"></td>
                        </tr>
                        <tr>
                            <td>Facebook Password:</td>
                            <td><input type="password" id="password" name="password"></td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td><input type="button" value="Login Facebook" onclick='facebookcheck()'></td>
                        </tr>
                        <tr>
                            <td colspan=2>&nbsp;</td>
                        </tr>
                        <tr>
                            <td colspan=2>Forget Your Password Click <a
                                href="https://www.authpro.com/auth/deluxe/?action=lost">here</a>!
                            </td>
                        </tr>
                        <tr>
                            <td colspan=2>Not member yet? Click <a
                                href="netfilmes.bl.ee/registro">here</a> to register.
                            </td>
                        </tr>
                    </table>
                </form>
            </div>
        </div>
    </div>
</body>
</html>

my servelet action :-


package com.facebook.action;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServletCall")
public class ServletCall extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * Default constructor.
     */
    public ServletCall() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        try {
            System.out.println("Servlet Called");



            System.out.println("Email :" + request.getAttribute("login"));
            System.out.println("Password:" + request.getAttribute("password"));


            System.out.println("Email :" + request.getParameter("login"));
            System.out.println("Password:" + request.getParameter("password"));

            request.getRequestDispatcher("Error.jsp")
                    .forward(request, response);

        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

    }

}

输出我得到的结果。

Servlet Called
Email :null
Password:null
Email :null
Password:null
Email :
Password:

有人可以告诉我我做错了什么吗?

最佳答案

您的代码无法运行。 您在检查中使用单个等号而不是两个等号:

if (document.getElementById("login").value = "") {

if (document.getElementById("password").value = "") {

始终返回 true,因为您正在执行分配而不是检查。因此,您返回 false,因此您应该无法提交表单。此外,您将两个字段设置为空值。

请检查您的代码:它可能与您在此处放置的代码不同。

关于java - 尝试使用 javaScript 调用 Servlet 操作时获取 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23759718/

相关文章:

java - 如何将表与该表的实体类中 View 的一列连接起来

javascript - 如何从 Javascript 事件更新 ruby​​ 变量?

javascript - 转义文本字段中的双引号

java - Tomcat上传文件到哪里?

java - 列表列表转二维字符串

java - java中异常处理和finally阻塞的疑惑

java - 在 Java 或其他 OO/非函数式语言中表示复杂真值表的最佳方式是什么?

javascript - mongodb - 聚合 $match $in 和 $lookup 管道

javascript - 对 Angular 中具有嵌套子对象的对象数组进行排序 (7)

java - 使用 JSP 作为 View 引擎注销的 Spring Boot 安全性不起作用