首页>代码>ssh框架开发的个人博客系统源码下载,基于mysql数据库>/博客/博客/myblog/src/com/qm/action/AdminAction.java
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  LV54 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日
最近浏览更多
WBelong  LV7 2023年12月11日
拜托你仔细听  LV3 2023年9月21日
zj20020510  LV5 2023年9月18日
周敏国  LV9 2023年8月21日
xuxin2000 2023年8月17日
暂无贡献等级
暂无贡献等级
刘洋66666  LV1 2023年7月14日
3416059514  LV1 2023年6月23日
陆程江  LV2 2023年5月28日
星辰xc  LV2 2023年5月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友