【发布时间】:2015-07-02 17:18:12
【问题描述】:
提前感谢您的帮助。我正在尝试使用单选按钮对象从 jsp 中获取答案,并在发送到将管理请求并发送到特定 servlet 以影响数据库的 servlet 之后。我在管理请求的 servlet 中有问题。我无法将请愿书重新发送到最终的 servlet。部分源码如下:
PolicyManager.jsp:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Change the current policy</h1>
<form action="ManageRequest" method="Post">
Which action would you like to apply?<br><br>
<input type="radio" name="policy" value="add">Add<br>
<input type="radio" name="policy" value="delete">Delete
<br><br>
<input type="submit" value="submit"/>
</form>
</body>
</html>
ManageRequest.java:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ManageRequest
*/
@WebServlet("/ManageRequest")
public class ManageRequest extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ManageRequest() {
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 printWriter = response.getWriter();
printWriter.print("doGet method");
String policy=request.getParameter("policy");
if (policy.equals("add") ) {
printWriter.println("<html><body>Redirecting to Add servlet section..."+"<br>");
RequestDispatcher dispatcher = request.getRequestDispatcher("/AddPolicy");
dispatcher.forward(request, response);
} else if (policy.equals("delete")) {
printWriter.println("<html><body>Redirectin to Delete servlet section..."+"<br>");
RequestDispatcher dispatcher = request.getRequestDispatcher("/DeletePolicy");
dispatcher.forward(request, response);
}
else{
printWriter.println("<html><body>A different option..."+"<br>");
}
printWriter.println("</body></html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter printWriter = response.getWriter();
String policy=request.getParameter("policy");
printWriter.print("doPost method");
if (policy.equals("add") ) {
printWriter.println("<html><body>Redirecting to Add servlet section..."+"<br>");
RequestDispatcher dispatcher = request.getRequestDispatcher("/AddPolicy");
dispatcher.forward(request, response);
} else if (policy.equals("delete")) {
printWriter.println("<html><body>Redirectin to Delete servlet section..."+"<br>");
RequestDispatcher dispatcher = request.getRequestDispatcher("/DeletePolicy");
dispatcher.forward(request, response);
}
else{
printWriter.println("<html><body>A different option..."+"<br>");
}
printWriter.println("</body></html>");
}
}
AddPolicy.java:
package PolicyManager;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class AddPolicy
*/
@WebServlet("/AddPolicy")
public class AddPolicy extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AddPolicy() {
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 printWriter = response.getWriter();
printWriter.println("<h1>Add Policy</h1>");
printWriter.println("Add Policy");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
DeletePolicy.java:
package PolicyManager;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class DeletePolicy
*/
@WebServlet("/DeletePolicy")
public class DeletePolicy extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DeletePolicy() {
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 printWriter = response.getWriter();
printWriter.println("<h1>Delete Policy</h1>");
printWriter.println("Delete Policy");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
web.xml:
<servlet>
<servlet-name>ManageRequest</servlet-name>
<servlet-class>PolicyManager</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ManageRequest</servlet-name>
<url-pattern>/PolicyManager</url-pattern>
</servlet-mapping>
问题是只有我才能获得必须将请求重定向到最终 servlet 的管理器 servlet。
感谢您的帮助。
干杯
【问题讨论】: