单击按钮时从 JSP 重定向到 servlet

Redirecting to a servlet from a JSP on button click

我正在尝试 link 从 JSP 到 servlet。单击名称="conf" 的按钮时,我需要重定向到一个 servlet "/Initial" 。问题是当我使用 type="button" 时没有任何反应,而当我使用 type="submit" 时页面被定向到 servlet“/Initial”并在那里执行操作。无法识别问题。

这是我的代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="reg.serv.*"%>

<!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=ISO-8859-1">
    <title>Insert title here</title>
</head>
<body>
    <form method="post">
        <center>
            <table border="1" width="30%" cellpadding="3">
                <thead>
                    <tr>
                        <th colspan="2">Register Here</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Username</td>
                        <td><input type="text" class="" id="username" name="username1" value="" /></td>
                    </tr>
                    <tr>
                        <td>Password</td>
                        <td><input type="password" name="password1" id="password" value="" /></td>
                    </tr>
                    <tr>
                        <td>Confirm Password</td>
                        <td><input type="password" name="confirmpassword1" id="confirmpassword" value="" /></td>
                    </tr>
                    <tr>
                        <td>Mobile Number</td>
                        <td><input type="text" class="" id="mob" name="mob1" value="" /></td>
                    </tr>
                    <tr>
                        <td>Email ID</td>
                        <td><input type="text" class="" id="email" name="email1" value=" " /></td>
                    </tr>
                    <tr>
                        <td>Address</td>
                        <td><textarea id="address" name="address1"></textarea></td>
                    </tr>

                    <tr>
                        <td colspan="2">Already registered <a href="Index.jsp">Login Here</a></td>
                    </tr>
                </tbody>

                <tr>
                    <td><input type="button" value="confirm" name="conf" /></td>
                    <td><input type="reset" value="Reset" /></td>
                    <td><input type="button" value="Cancel" name="Cr" onclick="openPage('Initial.jsp')" /></td>
                </tr>
        </table>
    </form>

    <script type="text/javascript">

        function openPage(pageURL) {
            window.location = pageURL;
        }

    </script>

    <%
        String x = request.getParameter("conf");

        if (x != null && x.equals("confirm")) {
            //response.sendRedirect("/Initial");
            RequestDispatcher dispatcher = request.getRequestDispatcher("/Initial");
            dispatcher.forward(request, response);
        }
    %>

</body>
</html>


请帮我 。任何帮助将不胜感激。谢谢你。

我不明白你到底想做什么,但重定向正在使用: response.sendRedirect(request.getContextPath());

response.sendRedirect(String url);

你必须写

<form action=/your_servlet_page_name>

而且你必须使用

<input type="submit" value="confirm" name="conf"/>

而且您还必须将您的 servlet 页面映射到 web.xml 文件,例如

<servlet-mapping>
    <servlet-name>CheckLogin</servlet-name>
    <url-pattern>/CheckLogin</url-pattern>
</servlet-mapping>

如果您想使用 type="button" 而不是 type="submit"。您可以在单击按钮时使用 javascript 功能。喜欢

<script>
function doSubmit(){
var actionURL ="MENTION URL YOU WANT TO REDIRECT";
// perform your operations

myForm.submit(actionURL); OR
myForm.submit();
}

</script>
<form name="myForm">
    <input type="button" name="conf" value="conf" obclick="doSubmit();">
</form> 

希望对您有所帮助。

尝试仅更改脚本

<script type="text/javascript">
 function openPage(pageURL)
 {
 window.location.href = pageURL;
 }
</script>

<form action = "servlet-name" method = "method in the servlet">
<input type ="submit" value = "val">
</form>

这是一种简单的方法。如果您使用的是最新的 jre,我认为是 7 及更高版本,则无需在 web.xml 文件中声明 servlet。 @WebServlet("/servlet-url") 可以解决问题。

function openPage(pageURL) {
            window.location = pageURL;
        }

In above code snippet, pageURL has to be an absolute URL which in case of dealing with servlets may vary.So instead of this below can be used

location.href = (location.href).substr(0, (location.href).lastIndexOf('xyz.jsp'))+"/abc";

Here 'abc' is the servlet to which we have to redirect the 'xyz.jsp' .This can even work if there are many buttons.The respective functions could be written to redirect to respective servlets. Also it works in case of input type is "button" or "submit".