-1
서블릿 JSP 코드로 작업하고있었습니다. jsp에서 하나의 레코드를 데이터베이스에 추가했습니다. 삽입 된 레코드를 보여주기 위해 나는 requestdispacther를 사용했다. 그러나 레코드는 계속 추가됩니다 (무한 루프처럼). 그런 다음 코드를 sendredirect로 바꾸고 올바르게 작동합니다.왜 우리는 dopost에 요청 디스패처를 사용하지 않아야합니까?
response.sendRedirect("AddNewProductOnRent?action=currentOnRentlist");
내가 사용했다 : 이 코드의 insted
RequestDispatcher rs = request.getrequestDispatcher("AddNewProductOnRent?action=currentOnRentlist");
forward(request,response)
......하지만 내 오류가 해결
오류
있어하지만 난 이유 을 알고 싶어요내 서블릿 코드 :
package com.twd.rent.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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;
import com.twd.rent.bean.RentBean;
import com.twd.rent.controller.Controller;
/**
* Servlet implementation class AddNewProductOnRent
*/
@WebServlet("/AddNewProductOnRent")
public class AddNewProductOnRent extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AddNewProductOnRent() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String action = request.getParameter("action");
if(action.equalsIgnoreCase("addnewproductonrent")){
RequestDispatcher rs = request.getRequestDispatcher("addnewproductonrent.jsp");
rs.forward(request, response);
}else if (action.equalsIgnoreCase("currentOnRentlist")) {
System.out.println("in current on rent list");
List<RentBean>list=new ArrayList<RentBean>();
list = new Controller().getListOfCurrentOnRent();
System.out.println(list);
request.setAttribute("plist",list);
String forword = "rentlist.jsp";
RequestDispatcher rs = request.getRequestDispatcher(forword);
rs.forward(request, response);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String trid = request.getParameter("trid");
String customertname = request.getParameter("customertname");
String contact = request.getParameter("contact");
String date = request.getParameter("date");
String address = request.getParameter("address");
RentBean rb = new RentBean();
rb.setCustomer_name(new String(customertname.getBytes("ISO-8859-1"),"UTF-8"));
rb.setContact(contact);
rb.setDateofissue(date);
rb.setAddress(new String(address.getBytes("ISO-8859-1"),"UTF-8"));
System.out.println(rb.getCustomer_name());
if(trid.isEmpty()){
System.out.println("In add");
Controller c = new Controller();
c.addproductonrent(rb);
response.sendRedirect("AddNewProductOnRent?action=currentOnRentlist");
}
else{
System.out.println("in update");
}
}
}
덕분에 삭제 표시 다시 게시하지 않고 URL