Я создаю веб-сайт и не могу получить значение из текстового поля. У меня есть страница входа в систему, на которой пользователь вводит имя пользователя. Мне нужно взять значение из текстового поля, а затем отправить его в login.jsp, где метод request.getParameter() принимает значение текстового поля. Но я полагаю, что request.getParameter() не работает. Пожалуйста, помогите мне указать ошибку. Вот мой код

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="login.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <style>
        .center{
            margin: auto;
            width: 400px; 
            height: 400px;
            border: 3px;
            padding-top: 50px;
        }


    </style>

</head>
<body>

    <div class="center" >
        <form action="login.jsp" method="post">
            <div>
                <img src="images/crms.png" style="padding-bottom:50px;" width="440" height="240">
            </div>
            <div id="comment_bubble" >
                <div class="form" id="form1">
                    <h2 style="padding-left:125px;">Sign In</h2>
                    <img src="images/hooo.png" style="padding-left:120px;padding-bottom:10px; ">
                    <div class="form-group has-feedback">
                        <input type="text" class="form-control" id="email" placeholder="Username" name="inputtext" value=""><span class="glyphicon glyphicon-user form-control-feedback " id="username"></span><br></div>
                    <div class="form-group has-feedback">
                        <input type="password" class="form-control" id="password" placeholder=" Password" align="center" name="pwd" value=""><span class="glyphicon glyphicon-lock form-control-feedback" id="pass"></span><br></div>
                    <button id="button" type="button" class="btn btn-default" value="submit" onclick="callfun();" >Submit</button><br><br>
                    <a href="#myModal" data-toggle="modal" id="Register">Create a new account</a>

                </div>
            </div>
        </form>

        <div class="modal fade" id="myModal" role="dialog">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal">X</button>
                        <h3>Create A New Account</h3>
                    </div>
                    <div class="modal-body">
                        <div class="form-group" id="form2">
                            <label for="sel1"> Designation</label>
                            <select class="form-control" id="sel1" >
                                <option>Director</option>
                                <option>Faculty</option>
                                <option>Technician</option>
                            </select><br>

                            <input type="email" class="form-control" placeholder="Username"><br>
                            <input type="email" class="form-control" placeholder="Faculty_Id"><br>
                            <input type="password" class="form-control" placeholder="Password"><br>
                            <input type="password" class="form-control" placeholder="Re-type password"><br>

                            <button id="button2" type="button" class="btn btn-primary" >Submit</button> 

                        </div>
                    </div>
                </div>
            </div>
        </div>

    </div>
    <script>
        function callfun() {
            location.href = "login.jsp";
        }
    </script>


</body>
</html>

И вот мой код Jsp:

 <%@page import="java.sql.ResultSet"%>
 <%@page import="java.sql.Statement"%>
 <%@page import="java.sql.DriverManager"%>
 <%@page import="java.io.*,java.util.*"%>
 <%@page import="java.sql.Connection"%>
 <%
String userid = request.getParameter("inputtext");
if(userid==null){
out.println("userid missing");
}
else{
String pass = request.getParameter("pwd");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/crms", "root", "root");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from login where username='" + userid + "'");

if (rs.next()) {
    if (rs.getString(2).equals(pass)) {
        String site=new String("complain.jsp");
        response.setStatus(response.SC_MOVED_TEMPORARILY);
        response.setHeader("Location",site);
    } else {
        out.println("else running");
    }
}
}
%>
jsp
0
user5005797 19 Апр 2016 в 08:20

4 ответа

Лучший ответ

У вашего поля ввода пароля есть имя, и вы можете получить значение пароля по имени. Скажем например

<input type="password" value="" name="pass">

Вы можете получить бэкэнд формы значения, позвонив

String pass = request.getParameter("pass");

Параметр std :: function позволяет указать обратный вызов для строк, не найденных в массиве необработанных строк. Вы можете использовать любую функцию или лямбду, которая соответствует подписи (параметр {{X0}} и возвращаемое значение {{X1}}).

<form action="login.jsp" method="post" id="myForm">

И ваш сценарий должен быть

<script>
        function callfun() {
            $("#myForm").submit();
        }
</script>

И дайте мне знать, если это сработает. Благодарю.

0
Ataur Rahman Munna 19 Апр 2016 в 05:38

Если вы используете <form action="login.jsp" method="POST">, вам не нужен javascript для отправки данных в jsp. Просто используйте

 <button id="button" type="submit" class="btn btn-default" value="Submit">Submit</button>

Тип submit позаботится об отправке данных на следующий экран

0
Shashanth 19 Апр 2016 в 05:34

В поле вашего пароля нет имени, поэтому request.getParameter() не может его найти. Должен быть

<input type="password" class="form-control" placeholder="Password" name="pwd">

Вы все равно делаете это неправильно. Вам следует select * from login where username = ? and password = ? и посмотреть, есть ли результаты. Пусть база данных сделает всю работу.

0
Marquis of Lorne 19 Апр 2016 в 05:43

Я столкнулся с той же проблемой. Я присвоил всем полям тег name и прочитал значения, используя тот же метод in request.getParameter(). По-видимому, удаление объявления enctype="multipart/form-data в поле <form> устранило проблему.

0
MeenakshiSingh 3 Окт 2020 в 18:42