Reenu Rahman
Reenu Rahman

Reputation: 33

Redirecting to a servlet from a JSP on button click

Am trying to link from a JSP to a servlet . On clicking the button with the name="conf" I need to redirect to a servlet "/Initial" . The problem is when I use type="button" nothing happens, while when I use type="submit" the page gets directed to servlet "/Initial" and does the action there. Am not able to identify the problem.

Here is my code:

<%@ 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>


Please help me . Any help would be greatly appreciated. Thanking You.

Upvotes: 1

Views: 39229

Answers (6)

Chetna R
Chetna R

Reputation: 1

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".

Upvotes: 0

Adzz
Adzz

Reputation: 127

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

This is a simple way to do this. If you are using the latest jre i think 7 and up, you don't need to declare the servlet in your web.xml file. the @WebServlet("/servlet-url") will do the trick.

Upvotes: 1

Abhijit Bashetti
Abhijit Bashetti

Reputation: 8658

try by changing the script only

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

Upvotes: 0

Arvind Vishwakarma
Arvind Vishwakarma

Reputation: 221

if you want to use type="button" instead of type="submit". you can use javascript function on the click on the button. Like

<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> 

hope it will help you.

Upvotes: 0

Ram Mansawala
Ram Mansawala

Reputation: 600

you have to write

<form action=/your_servlet_page_name>

And you have to use

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

And also you have to map your servlet page into web.xml file like

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

Upvotes: 1

greedsin
greedsin

Reputation: 1272

I dont get exactly what you are trying to do,but redirect is working with: response.sendRedirect(request.getContextPath()); or

response.sendRedirect(String url);

Upvotes: -1

Related Questions