gpt4 book ai didi

java - 从 servlet 重定向到 servlet

转载 作者:行者123 更新时间:2023-12-01 07:04:36 25 4
gpt4 key购买 nike

我想将数据从文本框插入到 Oracle 数据库中,所以在我的 HTML 中有文本框(和三个按钮:新建、更新和保存),所以当我单击三个按钮中的任何一个时,它会将我带到redirectServlet。

我想从这个 servlet 再次将我的页面转发到 insertServlet(即,当我单击 NEW 按钮时),但是我收到 404 错误。可能是我的逻辑不对或者需要正确映射wex.xml。

wex.xml 代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>AcerLink</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<servlet>

<display-name>redirectServlet</display-name>
<servlet-name>redirectServlet</servlet-name>
<servlet-class>redirectServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>redirectServlet</servlet-name>
<url-pattern>/redirectServlet</url-pattern>
</servlet-mapping>

<servlet>
<description></description>
<display-name>insertServlet</display-name>
<servlet-name>insertServlet</servlet-name>
<servlet-class>insertServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>insertServlet</servlet-name>
<url-pattern>/insertServlet</url-pattern>
</servlet-mapping>
</web-app>

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);

关于java - 从 servlet 重定向到 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19747618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com