从servlet重定向到servlet

我想将文本框中的数据插入到oracle数据库中,所以在我的HTML中有文本框(和3个按钮 – 新建,更新并保存)所以当我点击三个按钮中的任何一个时,我需要redirectServlet,并从这个servlet我想再次将我的页面转发到insertServlet(即当我点击NEW按钮时),但是我收到404错误。 可能是我的逻辑错误或wex.xml需要正确映射。 任何人都可以帮助请它紧急。

**wex.xml code**   AcerLink  index.html index.htm index.jsp default.html default.htm default.jsp   redirectServlet redirectServlet redirectServlet   redirectServlet /redirectServlet    insertServlet insertServlet insertServlet   insertServlet /insertServlet   

redirectServlet

 import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class redirectServlet */ public class redirectServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public redirectServlet() { 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 } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub if (request.getParameter("NEW") != null) { response.sendRedirect("/insertServlet"); return ; } else if (request.getParameter("UPDATE") != null) { request.getRequestDispatcher("/redirectServlet").forward(request, response); } else if (request.getParameter("SAVE") != null) { request.getRequestDispatcher("save.jsp").forward(request, response); } } } 

insertServlet

 import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class insertServlet */ public class insertServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public insertServlet() { 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 PrintWriter out = response.getWriter(); PrintWriter pwinsert = response.getWriter(); // PrintWriter pwdelete = res.getWriter(); Connection con = null; PreparedStatement ps = null; // ResultSet rs = null; // Statement st = null; String appl=request.getParameter("app"); String sel=request.getParameter("second"); String url= request.getParameter("link"); try { Class.forName("oracle.jdbc.OracleDriver"); } catch(ClassNotFoundException ex) { System.out.println("driver not loaded"); System.exit(0); } String URL = "jdbc:oracle:thin:SCOTT/tiger@computer_1:1521:orcl"; try { con = DriverManager.getConnection(URL); if(request.getParameter("choise")==null) { ps = con.prepareStatement("INSERT into TEST_LINKS (ID,APPLICATION,ENTITY,URL) VALUES(TEST_LI.nextval,?,?,?)"); ps.setString(1,appl); ps.setString(2,sel); ps.setString(3,url); int i = ps.executeUpdate(); pwinsert.println(i); if(i!=0) { pwinsert.println("Your data has been stored in the database"); } else { pwinsert.println("Your data could not be stored in the database"); } } } catch(Exception e) { pwinsert.println(e.getMessage()); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } } 

你也可以使用

 response.sendRedirect("/insertServlet"); 

要么

 ServletContext context= getServletContext(); RequestDispatcher rd= context.getRequestDispatcher("/insertServlet"); rd.forward(request, response); 

这是我提出的最佳解决方案:

 response.sendRedirect(request.getContextPath() + "/servlet"); 

response.sendRedirect("/insertServlet"); 将重定向到ROOT应用程序。 您应该添加上下文路径"/ContextPath/insertServlet"或尝试通过RequestDispacher访问。