从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访问。
- java.lang.Class无法强制转换为java.lang.reflect.ParameterizedType
- Java Date排序方法?
- 使用Strutsvalidation框架进行error handling的问题
- 虽然我实现了’Serializable’,但为什么我得到NotSerializableExceptionexception
- 如何将EJB模块从Netbeans部署到Glassfish
- 为什么我需要释放在JNI本机函数中创建的全局引用?
- 参数WebElement中的方法sendKeys(CharSequence )不适用于参数(String)
- JPA不支持接口..implications?
- 处理时间,延迟和响应时间的含义和计算公式