2015-01-08 2 views
1

Я пытаюсь связать JSP с сервлетом. При нажатии кнопки с именем = "conf" мне нужно перенаправить на сервлет "/ Initial". Проблема в том, что когда я использую type="button", ничего не происходит, а когда я использую type="submit", страница попадает в сервлет «/ Начальная» и выполняет там действие. Я не могу определить проблему.Перенаправление на сервлет из JSP при нажатии кнопки

Вот мой код:

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


Пожалуйста, помогите мне. Любая помощь будет принята с благодарностью. Благодарю Тебя.

+2

прочитать: [Разница между <входной тип = 'кнопка' /> и <входной тип = 'Отправить' />](http://stackoverflow.com/a/290221/814702) и это
: [HTML '

+0

да .. @informatik спасибо ... Я попытался перенаправить использование события onclick кнопки ... но можно получить только страницы jsp, а не сервлет –

+1

Похоже, вы пытаетесь сделать это как способ PHP: смешивание презентации и кода , Ваш код сервлета НЕ должен содержаться в JSP-файле. Также использование сценариев в JSP-файлах [сильно обескуражено] (http://stackoverflow.com/a/3180202/814702). То, что вы пытаетесь достичь, кажется, очень простой сценарий, и я подозреваю, что вы просто не очень опытные в мире сервлетов/JSP. Прочитайте эту страницу с информацией о переполнении стека о [Сервлетах] (http://stackoverflow.com/tags/servlets/info) и посмотрите примеры использования простых сервлетов. – informatik01

ответ

0

вы должны написать

<form action=/your_servlet_page_name> 

И вы должны использовать

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

А также вам необходимо нанести на карту свой серп т страницы в web.xml файл как

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

Пробовал это @Ram. Начальное /Начальный Получает ошибку Причиняет: java.lang.IllegalArgumentException: Сервлеты с именем [ Initial] и [reg.serv.Initial] оба отображаются в url-шаблон [/ Initial], который не разрешен ... –

+0

@ReenuRahman О недопустимом сопоставлении: http://stackoverflow.com/a/17426415/814702 – informatik01

+0

прошло через это спасибо @Ram –

-1

я не получаю именно то, что вы пытаетесь сделать, но перенаправление работает с: response.sendRedirect(request.getContextPath()); или

response.sendRedirect(String url); 
+0

необходимо передать значения из формы в сервлет "/ Initial" ... нужно использовать кнопку "вместо" отправить для передачи значения формы. Я использовал onclick, но он работает для перенаправления на jsp только не на сервлет –

+0

Хорошо попробуйте написать внешний класс Servlet и использовать

greedsin

+0

Я пробовал, что уже @lolio все равно ничего не происходит когда используется кнопка, когда при подаче используется ошибка. Состояние Сообщение о состоянии Сообщение/reg1/jsp/Initial описание Запрошенный ресурс недоступен. –

-1

если вы хотите использовать тип = «кнопка» вместо типа = «отправить». вы можете использовать функцию 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> 

надеюсь, что это вам поможет.

+0

спасибо @Arvind. Ваше решение решило проблему ... еще раз спасибо ... –

+0

Ваш самый радушный @ReenuRahman :) –

0

попробовать, изменив сценарий только

<script type="text/javascript"> 
function openPage(pageURL) 
{ 
window.location.href = pageURL; 
} 
</script> 
Смежные вопросы