почему я получаю нулевое значение при использовании «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>