我用login.jsp进行登录留言板的管理页面用一个servlet进行身份验证。成功----->通过request.getRequestDispatcher("/admin/secure/manage?q=list").forward(request, response);return;其中/admin/secure/manage是ManageServlet的映射路径。来登录到manage的管理程序中,也就是ManageServlet来执行q=list的操作。然后转向到list.jsp中。
------------------------------------------------------------------------------------------------------
ManageServlet的代码是:
package com.v512.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import com.v512.Guestbook;
import com.v512.dbutil.OracleUtil;
public class ManageServlet extends HttpServlet {
private static final long serialVersionUID = -7850908097407733668L;
public void update(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sql = "update guestbook set name=?,email=?,phone=?,title=?,content=? where id=?";
String message = "";
String param[] = { request.getParameter("name"),
request.getParameter("email"), request.getParameter("phone"),
request.getParameter("title"), request.getParameter("content"),
request.getParameter("id") };
OracleUtil db = new OracleUtil("java:/comp/env/jdbc/oracleds");
db.init();
int i = db.update(sql, param);
if (i == 1) {
message = "更新成功!";
request.setAttribute("guestbook.admin.update.message", message);
request.getRequestDispatcher("/admin/secure/list.jsp").forward(
request, response);
Guestbook gb = new Guestbook();
gb.setName(request.getParameter("name"));
gb.setEmail(request.getParameter("email"));
gb.setPhone(request.getParameter("phone"));
gb.setTitle(request.getParameter("title"));
gb.setContent(request.getParameter("content"));
request.setAttribute("admin/secure/update", gb);
} else {
message = "更新不成功!";
request.setAttribute("guestbook.admin.update.message", message);
request.getRequestDispatcher("/admin/secure/update.jsp").forward(
request, response);
}
}
public void delete(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sql = "delete from guestbook where id=?";
String message = "";
String[] param = { request.getParameter("id") };
OracleUtil db = new OracleUtil("java:/comp/env/jdbc/oracleds");
db.init();
int i = db.update(sql, param);
if (i == 1) {
message = "删除成功!";
request.setAttribute("guestbook.admindelete.message", message);
request.getRequestDispatcher("/admin/secure/delete.jsp").forward(
request, response);
} else {
message = "删除不成功!";
request.setAttribute("guestbook.admin.delete.message", message);
request.getRequestDispatcher("/admin/secure/delete.jsp").forward(
request, response);
}
}
public void edit(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sql = "select * from guestbook where id=?";
String[] param = { request.getParameter("id") };
OracleUtil db = new OracleUtil("java:/comp/env/jdbc/oracleds");
db.init();
List list = (List) db.query(sql, param, new BeanListHandler(
Guestbook.class));
request.setAttribute("guestbook.admin.edit", list.get(0));
request.getRequestDispatcher("http://www.v512.com").forward(request,
response);
}
public void list(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sql = "select id ,name,title from guestbook order by id desc";
OracleUtil db = new OracleUtil("java:/comp/env/jdbc/oracleds");
db.init();
List list = (List) db.query(sql, null, new BeanListHandler(
Guestbook.class));
request.setAttribute("guestbook.admin.list", list);
request.getRequestDispatcher("/admin/secure/list.jsp").forward(request,
response);
return;
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String method = request.getParameter("q");
if (method.equals(null)) {
method = "list";
}
if (method.equals("edit")) {
edit(request, response);
} else if (method.equals("delete")) {
delete(request, response);
} else if (method.equals("update")) {
update(request, response);
} else {
list(request, response);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
} ---------------------------------------------------------------------------------
可是我的前二次转向已经成功了!就是由
request.getRequestDispatcher("/admin/secure/manage?q=list").forward(request, response);
return; //这行代码的执行是以身份通过为前提的。其中/admin/secure/manage是ManageServlet的映射路径。
request.getRequestDispatcher("/admin/secure/list.jsp").forward(request, response);
return;然后它可以成功的转向到list.jsp;在list.jsp中又有两个链接如下:
编辑
删除
当点击“编辑”或“删除”时就出现了下面的异常:
java.lang.IllegalStateException: Cannot forward after response has been committed
com.v512.servlet.ManageServlet.edit(ManageServlet.java:73)