【发布时间】:2015-07-02 10:43:13
【问题描述】:
如何处理 servlet 中的异常转发到具有不同消息的同一错误页面? 在我的 servlet 中,我有以下 doGet(此处简化)方法,带有一个 switch 案例:
public class NewServlet extends HttpServlet {
//[...]
protected void doGet(
//[...]
try {
DAO ldapdao = new DAO();
List<Entry> entries = null;
switch (enumPage.fromString(operation)) {
// [...]
case add:
String values[] = request.getParameterValues("item");
try {
ldapdao.addentry(values);
link = "entryadded.jsp";
} catch (Exception exp) { // 2
throw new MyException("Entry Not Added");
}
break;
case remove:
entries = ldapdao.searchEntry(request.getParameter("item"));
if (entries.isEmpty()) {
throw new MyException("Entry Not Removed"); //3
} else {
ldapdao.remove(request.getParameter("item"));
link = "entryremoved.jsp";
}
break;
case modified:
String values1[] = request.getParameterValues("item");
try {
ldapdao.modify(values1);
link = ("modified.jsp");
} catch (Exception exp) { //4
throw new MyException("Entry Not Modified");
}
// [...]
然后我有我的自定义异常:
package com.mycompany.test_servlet;
import javax.servlet.ServletException;
public class MyException extends ServletException {
private String message = null;
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
public MyException(Throwable cause) {
super(cause);
}
}
和 web.xml 文件:
<error-page>
<location>/Error.jsp</location>
</error-page>
【问题讨论】:
标签: java jsp exception servlets web.xml