返回信息流搞了一晚上,还是没有实现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的操作
哪里出问题了呢?
求教~
这是一条镜像帖。来源:北邮人论坛 / java / #14644同步于 2010/5/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
有人用过aspectwerkz 吗
bylijinnan
2010/5/22镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复