发表于: 2017-05-20 21:50:22
5 1287
【说明】今天做了Baseservlet和CategoryServlet
一:今日完成
1)CategoryServlet 以一个list方法为例
public String list(HttpServletRequest request, HttpServletResponse response, Page page) {
List<Category> cs = categoryDAO.list(page.getStart(),page.getCount());
int total = categoryDAO.getTotal();
page.setTotal(total);
request.setAttribute("thecs", cs);
request.setAttribute("page", page);
return "admin/listCategory.jsp";
}
2)Baseservlet 写出service方法
public void service(HttpServletRequest request, HttpServletResponse response) {
try {
/*获取分页信息*/
int start= 0;
int count = 5;
try {
start = Integer.parseInt(request.getParameter("page.start"));
} catch (Exception e) {
}
try {
count = Integer.parseInt(request.getParameter("page.count"));
} catch (Exception e) {
}
Page page = new Page(start,count);
/*借助反射,调用对应的方法*/
String method = (String) request.getAttribute("method");
Method m = this.getClass().getMethod(method, javax.servlet.http.HttpServletRequest.class,
javax.servlet.http.HttpServletResponse.class,Page.class);
String redirect = m.invoke(this,request, response,page).toString();
/*根据方法的返回值,进行相应的客户端跳转,服务端跳转,或者仅仅是输出字符串*/
if(redirect.startsWith("@"))
response.sendRedirect(redirect.substring(1));
else if(redirect.startsWith("%"))
response.getWriter().print(redirect.substring(1));
else
request.getRequestDispatcher(redirect).forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}
}
二:明日计划
继续剩下的servlet编写
三:疑难问题
像订单这样极其重要的业务数据,实际上是不运行真正从数据库中删除掉的,而是把状态标记为删除
四:思考总结
今天碰到JSTL标签的使用
${requestScope.id} 则表示为在 request 作用域中取的参数为 id 的值。
${param.id} 则表示 由客户端传送过来的,参数名为 id 的值。
相当于:request.getParamter("id");
评论