我的问题是 - 如果我使用网守 servlet 将页面转发到其他 servlet,让第二个 servlet 引用参数或创建属性供它们引用更好吗?
假设我有一种形式:
<form action=www.ermehgerdpuppies.com/Gatekeeper id = puppyForm>
<select name=puppyList>
<option value=cutePuppyServlet_12>CutePuppy
<option value=uglyPuppyServlet_14>UglyPuppy
</select></form>
我提交此表单,该表单将发送到 Gatekeeper servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.getParameterMap().containsKey("puppyList"))
{
String qString = request.getParameter("puppyList");
String[] qsArray = qString.split("_");
request.setAttribute("merPuppy", qsArray[1]);
RequestDispatcher rd = getServletContext().getRequestDispatcher(qsArray[0]);
rd.forward(request, response);
}
}
然后转到cutePuppyServlet(对于这个例子,它转到cutePuppy)
现在在我的cutePuppyServlet.java 中,我可以这样引用数据:
request.getParameter("puppyList");
或者
request.getAttribute("merPuppy");
使用参数,我可以检查它是否存在,以防止炸毁所有东西。我的问题是,哪个更利于可维护性?我应该坚持转发参数还是应该创建一个属性?