packagecom.jssso.htgl.action;importjava.io.IOException;importjava.io.PrintWriter;importjava.net.URLDecoder;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.UUID;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;importcom.jssso.htgl.entity.Role;importcom.jssso.htgl.service.RoleService;importcom.jssso.htgl.service.impl.RoleServiceImpl;importcom.jssso.htgl.util.GetChche;importcom.jssso.htgl.util.StaticValue;importcom.zxrytj.netty.MyCache;
@SuppressWarnings("serial")public class RoleServlet extendsHttpServlet {
@Overrideprotected voiddoGet(HttpServletRequest request,
HttpServletResponse response)throwsServletException, IOException {this.doPost(request, response);
};
@Overrideprotected voiddoPost(HttpServletRequest request,
HttpServletResponse response)throwsServletException, IOException {
String option= request.getParameter("option");if (option != null) {if ("selectApp".equals(option)) {
selectApp(request, response);
}else if ("saveApp".equals(option)) {
saveApp(request, response);
}else if ("updateApp".equals(option)) {
updateApp(request, response);
}else if ("deleteApp".equals(option)) {
deleteApp(request, response);
}else if ("index".equals(option)) {
goView("/WEB-INF/view/jsp/htgl/role.jsp", request, response);return;
}else if("jsonRole".equals(option)){
jsonRole(request, response);
}
}
}/*** 删除应用地址
*
*@paramrequest
*@paramresponse
*@throwsIOException*/
private voiddeleteApp(HttpServletRequest request,
HttpServletResponse response)throwsIOException {
String urlId= request.getParameter("rid");
RoleService roleService= newRoleServiceImpl();boolean flag =roleService.deleteApp(urlId);
PrintWriter out=response.getWriter();if(flag) {
out.print("success");
}else{
out.print("error");
}
out.flush();
out.close();
}/*** 修改应用地址
*
*@paramrequest
*@paramresponse
*@throwsIOException*/
private voidupdateApp(HttpServletRequest request,
HttpServletResponse response)throwsIOException {
String urlId= request.getParameter("rid");
String name= request.getParameter("rname");
String url= request.getParameter("des");
Long rid= null;if (urlId != null) {
rid=Long.parseLong(urlId);
}
Role role= newRole(rid, name, url);
RoleService roleService= newRoleServiceImpl();boolean flag =roleService.updateApp(role);
PrintWriter out=response.getWriter();if(flag)
out.print("success");elseout.print("error");
out.flush();
out.close();
}/*** 添加应用地址
*
*@paramrequest
*@paramresponse
*@throwsIOException*/
private voidsaveApp(HttpServletRequest request,
HttpServletResponse response)throwsIOException {
String rname= request.getParameter("rname");
String rdes= request.getParameter("des");
RoleService roleService= newRoleServiceImpl();boolean flag =roleService.saveApp(rname, rdes);
PrintWriter out=response.getWriter();if(flag)
out.print("success");elseout.print("error");
out.flush();
out.close();
}/*** 查询应用地址
*
*@paramrequest
*@paramresponse
*@throwsIOException*/
private voidselectApp(HttpServletRequest request,
HttpServletResponse response)throwsIOException {
String rname= request.getParameter("rname");
String rdes= request.getParameter("des");if(rname!=null && !"".equals(rname.trim())){try{
rname= URLDecoder.decode(rname, "utf-8");
}catch(Exception e) {
e.printStackTrace();
}
}
Long pageIndex= 1L;if (request.getParameter("page") != null) {
pageIndex= Long.parseLong(request.getParameter("page"));if (pageIndex == null || pageIndex == 0) {
pageIndex= 1L;
}
}
Integer pageSize= 10;if (request.getParameter("rows") != null) {
pageSize= Integer.parseInt(request.getParameter("rows"));if (pageSize == null) {
pageSize= 10;
}
}
RoleService roleService= newRoleServiceImpl();
Cookie[] cookies= request.getCookies();//这样便可以获取一个cookie数组
String ckvalue="";
List listcahe=null;for(Cookie cookie : cookies)
{if(cookie.getName().equalsIgnoreCase(StaticValue.COOKIES_ROLE_KKEY))//cookie的key值存在,ckvalue存在,直接取值listcacahe
{
ckvalue=cookie.getValue();
System.out.println("ckvalue存在"+ckvalue);
MyCache cache=MyCache.getinstance();
listcahe=cache.getCache(ckvalue);
}
}if("".equals(ckvalue))//ckvalue不存在
{
System.out.println("ckvalue不存在"+ckvalue);
MyCache cache=MyCache.getinstance();
String uuid=UUID.randomUUID().toString();/*** COOKIES_ROLE_KKEY为cookie的key*/Cookie ck=newCookie(StaticValue.COOKIES_ROLE_KKEY,uuid);
ck.setMaxAge(-1);//过期时间,单位为秒,-1关闭浏览器cookie消失
/*** 获取web-inf路径*/
//String path=request.getSession().getServletContext().getRealPath("/WEB-INF/cookie");//System.out.println("&&&&&&&&&&&&&&&&&path:"+path);
ck.setPath("/js_sso_server/");
response.addCookie(ck);
listcahe=roleService.getApp(rname, rdes, pageIndex, pageSize);
cache.add(uuid,listcahe);
}//GetChche get=new GetChche();//get.getCache(request);
Long count =roleService.pageCount(rname, rdes);
Long pageCount= count % pageSize == 0 ? count /pageSize
: (count/ pageSize) + 1;
Map jsonMap = new HashMap();//定义map
jsonMap.put("total", count);
jsonMap.put("rows", listcahe);
jsonMap.put("pages", pageCount);
jsonMap.put("from", (pageIndex - 1) * pageSize + 1);
jsonMap.put("to", pageIndex *pageSize);
PrintWriter out=response.getWriter();
out.print(JSONObject.fromObject(jsonMap).toString());
out.flush();
out.close();
}/*** 查询应用地址
*
*@paramrequest
*@paramresponse
*@throwsIOException*/
private voidjsonRole(HttpServletRequest request,
HttpServletResponse response)throwsIOException {
Long pageIndex= 1L;if (request.getParameter("page") != null) {
pageIndex= Long.parseLong(request.getParameter("page"));if (pageIndex == null || pageIndex == 0) {
pageIndex= 1L;
}
}
Integer pageSize= 10;if (request.getParameter("rows") != null) {
pageSize= Integer.parseInt(request.getParameter("rows"));if (pageSize == null) {
pageSize= 10;
}
}
RoleService roleService= newRoleServiceImpl();
List json = roleService.getApp(null,null, pageIndex, pageSize);
PrintWriter out=response.getWriter();
out.print(JSONArray.fromObject(json).toString());
out.flush();
out.close();
}private voidgoView(String url, HttpServletRequest request,
HttpServletResponse response) {
RequestDispatcher dispatcher=request.getRequestDispatcher(url);try{
dispatcher.forward(request, response);
}catch(ServletException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}
}