BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #14644同步于 2010/5/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

有人用过aspectwerkz 吗

bylijinnan
2010/5/22镜像同步1 回复
搞了一晚上,还是没有实现aop,哭死了: 希望实现登陆后将用户登录信息记入数据库(记录操作日志) action: public class LoginAction extends DispatchAction { public ActionForward validate(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String name=request.getParameter("username"); String pwd=request.getParameter("password"); if(name!=null&&!"".equals(name.trim())&&pwd!=null&&!"".equals(pwd.trim())){ System.out.println("user login. name="+name+",pwd="+pwd); Connection conn = null; PreparedStatement ps = null; JdbcUtilsSing jus = JdbcUtilsSing.getInstance(); ResultSet rs=null; try { conn = jus.getConnection(); conn.setAutoCommit(false); // 1 2 3 4 String sql="select user.id,user.dept_id,user.role,user.name from user where user.name=? and user.password=?"; ps=conn.prepareStatement(sql); ps.setString(1, name.trim()); ps.setString(2, pwd.trim()); rs=ps.executeQuery(); HttpSession session=request.getSession(); if(rs.next()){ System.out.println("login ok"); int role=rs.getInt(3); switch (role){ case 0: //admin session.setAttribute("role", "admin"); return mapping.findForward("main");//not main.jsp now but distribute.jsp //return new ActionForward("/distribute/distributeAction.do?method=displayDept"); case 1: //manager of a department session.setAttribute("role", "manage"); int deptId=rs.getInt(2); return new ActionForward(//when isManager=true,we shouldn't show manager in user_of_dept.jsp "/distribute/distributeAction.do?method=getUserByDeptId&deptId="+deptId+"&isManager=true"); case 2: session.setAttribute("role", "common"); String name0=rs.getString(4); String id0=rs.getString(1); request.setAttribute("commonUserName", name0); request.setAttribute("commonUserId", id0);//return id when user want to watch his details return mapping.findForward("commonUser"); default: return mapping.findForward("loginError"); } } } catch (SQLException e) { e.printStackTrace(); }finally{ jus.free(rs, ps, conn); } } return mapping.findForward("loginError"); } } //======================================================= logger类: @Aspect("perJVM") public class MyLogger { @After("execution(public org.apache.struts.action.ActionForward com.ljn.action.LoginAction.validate(..))") public void validate(JoinPoint joinPoint) { System.out.println("login success ..."); } } //======================================================= aop.xml: <!DOCTYPE aspectwerkz PUBLIC"-//AspectWerkz//DTD//EN""http://aspectwerkz.codehaus.org/dtd/aspectwerkz2.dtd"> <aspectwerkz> <system id="AspectWerkzExample"> <aspect class="com.ljn.aop.MyLogger"/> </system> </aspectwerkz> //======================================================= 使用MyEclipse+aspectwerkz插件 开发 利用aspectwerkz插件实行了织入action的操作 哪里出问题了呢? 求教~
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
bylijinnan机器人#1 · 2010/5/23
自己顶下