package com.qm.action; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletResponseAware; import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.qm.entity.Admin; import com.qm.service.IAdminService; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * 管理员控制层 * @author quanmin * */ public class AdminAction extends ActionSupport implements SessionAware,ServletResponseAware{ /** * */ private static final long serialVersionUID = 1L; private Admin admin; private IAdminService adminService; private HttpServletResponse response; private String chknumber; private Map<String, Object> sessionMap; /** * 登录验证 * @return * @throws Exception */ public String login() throws Exception{ ActionContext ac=ActionContext.getContext(); ac.getSession().put("userName", admin.getUserName()); if(adminService.login(admin.getUserName(), admin.getPwd())&& sessionMap.get("randomCode").equals(chknumber)){ return "main"; } return "login"; } /** * 管理员退出清除session * @return * @throws Exception */ public String logout() throws Exception{ Map<String,Object> map=ActionContext.getContext().getSession(); map.clear(); return "logout"; } /** * 验证码 */ @Override public String execute() throws Exception{ response.setHeader("Cache-Control", "no-cache"); int width=90; //图片宽度 int height=26; //图片高度 BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphics graphics=image.createGraphics(); graphics.setColor(this.getColor()); //背景颜色 graphics.fillRect(0, 0, width, height); graphics.setFont(new Font("Arial",Font.BOLD,18)); graphics.setColor(this.getColor()); //字的颜色 String number=String.valueOf(System.currentTimeMillis()%9000+1000); //生成四位随机数 sessionMap.put("randomCode", number); //写入session中 graphics.drawString(number, (int)(width*0.3), (int)(height*0.8)); graphics.dispose(); JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(response.getOutputStream()); encoder.encode(image); response.getOutputStream().flush(); //刷新到页面生成图片 response.getOutputStream().close(); //关闭writer return null; } private Color getColor(){ int red=(int)(Math.random()*1000%256); int green=(int)(Math.random()*1000%256); int blue=(int)(Math.random()*1000%256); return new Color(red,green,blue); } public Admin getAdmin() { return admin; } public void setAdmin(Admin admin) { this.admin = admin; } public void setAdminService(IAdminService adminService) { this.adminService = adminService; } public void setSession(Map<String, Object> sessionMap) { this.sessionMap = sessionMap; } public void setServletResponse(HttpServletResponse response) { this.response = response; } public HttpServletResponse getResponse() { return response; } public void setResponse(HttpServletResponse response) { this.response = response; } public String getChknumber() { return chknumber; } public void setChknumber(String chknumber) { this.chknumber = chknumber; } }
最近下载更多
wanglinddad LV55
2022年3月18日
adim10912 LV2
2022年3月5日
and123456 LV11
2022年2月7日
977903096 LV10
2021年12月23日
15966848095 LV22
2021年11月15日
SOLEIL. LV3
2021年6月19日
15525425383 LV6
2021年5月23日
rongfan LV14
2021年4月6日
yyy777 LV5
2021年2月4日
ExamplesDYC LV13
2020年11月21日
最近浏览更多
Peny_ZH LV5
9月21日
educationAAA LV11
5月8日
WBelong LV8
2023年12月11日
拜托你仔细听 LV3
2023年9月21日
zj20020510 LV5
2023年9月18日
周敏国 LV9
2023年8月21日
xuxin2000
2023年8月17日
暂无贡献等级
枫眠啊啊啊啊啊啊啊啊
2023年7月28日
暂无贡献等级
刘洋66666 LV1
2023年7月14日
3416059514 LV1
2023年6月23日