Почему я получаю нулевое значение при использовании «sendReditect» в сервлете, как показано ниже - PullRequest
0 голосов
/ 28 мая 2018

Почему я получаю нулевое значение при использовании «sendReditect» в сервлете, как указано ниже

мой код, как указано ниже: я получаю нулевое значение fname даже в FirstServlet и SecondServlet

index.html:

    <!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <form action="FirstServlet" method="get">
        username<input type="text" name="fname"></br> <input type="submit"
            value="SUBMIT">
    </form>
</body>
</html>

FirstServlet:

    package com.naveen;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class FirstServlet
 */
@WebServlet("/FirstServlet")
public class FirstServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse res) throws ServletException, IOException {
        String s3=request.getParameter("fname");
        // TODO Auto-generated method stub
        /*String s1=request.getParameter("t1");*/
        /*RequestDispatcher rd=request.getRequestDispatcher("SecondServlet");
        rd.forward(request, response);*/
        res.sendRedirect("SecondServlet");
        System.out.println("your output as per" +s3);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

SecondServlet:

package com.naveen;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class SecondServlet
 */
@WebServlet("/SecondServlet")
public class SecondServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setContentType("text/html");
        PrintWriter out=response.getWriter();
        String s3=request.getParameter("fname");

        out.print("hi i am siddharth");
        out.println(s3);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

1 Ответ

0 голосов
/ 28 мая 2018

почему я получаю нулевое значение при использовании «sendReditect» в сервлете, как показано ниже моего кода, как показано ниже: я получаю нулевое значение fname даже в FirstServlet и SecondServlet,

Потому что вы не устанавливаете какие-либо значения для вашего запроса.Вам нужно установить значение для запроса следующим образом:

@WebServlet("/FirstServlet")
public class FirstServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse res) throws ServletException, IOException {
        String s3=request.getParameter("fname"); //get the value you set in your jsp/html/url


        request.setAttribute("fname", s3); // set the s3 value to the request

        res.sendRedirect("SecondServlet");
        System.out.println("your output as per" +s3);
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

}

Я предполагаю, что здесь вы отправили значение fname через форму или что-то в этом роде.Если вы наберете FirstServlet, просто введя его в URL, вы получите ноль.

Но если вы не установили что-то, попробуйте это так, если вы не отправляете форму:

/FirstServlet?fname=helloworld

РЕДАКТИРОВАТЬ:

только что заметил в вашей форме, что вы на самом деле не устанавливаете fname с любым значением.Вам нужно дать ему значение:

    <!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <form action="FirstServlet" method="get">
        username<input type="text" name="fname" value="helloworld"></br> //add value to your input!! 
                <input type="submit" value="SUBMIT">
    </form>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...