• 【liferay】6、可配置式cookie


    问题提出

     项目运行中,cookie的作用一般是起着一个不可或缺的权限控制或者认证的作用,但是如果是多系统交互,cookie是由别的系统生成,本系统对接的话,那么这个cookie就会

    成为项目测试的一个麻烦

    那么我们可以基于这个,开发一个cookie的配置页面

    1、展示目前所有的cookie

    2、对已有的cookie进行操作

    3、可以新增对应的cookie

    配置文件修改

    首先在liferay-portlet.xml中添加一个

    <requires-namespaced-parameters>false</requires-namespaced-parameters>

    可以避免在页面传参的时候,要加namespace的尴尬

    其余的配置文件,按照eclipse自带的生成方式生成就可以了

    定义页面

    定义init页面

    init.jsp

    <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
    <%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
    <%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    
    <portlet:defineObjects />

    view.jsp

    <%@ include file="/html/common/init.jsp" %>
    <%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" deferredSyntaxAllowedAsLiteral="true"%>
    
    <!-- 一般不跳转到其他页面的时候,doview 等 我们使用renderRequest渲染页面 -->
    <portlet:renderURL var="cookieform"></portlet:renderURL>
    <!-- 查询,修改,新增,删除 -->
    <portlet:resourceURL id="cookieAjax" var="oper"></portlet:resourceURL>
    <portlet:actionURL var="modCookie" name="modCookie">
        <portlet:param name="jspPage" value="/html/cookieoperator/view.jsp"/>
    </portlet:actionURL>
    
    <!-- 获取根目录 -->
    <%
        String rootPath = renderRequest.getContextPath();
        String title = "配置cookie";
        
    %>
    
    <script type="text/javascript" src="<%=rootPath%>/js/jQuery/jquery-3.1.1.js"></script>
    <link rel="stylesheet" type="text/css" href="<%=rootPath%>/css/cookieoperator/main.css" />
    
    <!-- 展示所有的cookie -->
    <h1>Cookie的展示</h1>
    <div id="win1">
        <!-- 工具栏,查询,新增,修改,删除 -->
        <div id="toolbar">
            <input id="select" value="查询" type="button" />
            <input id="add" value="新增" type="button" />
            <input id="mod" value="修改" type="button" />
            <input id="del" value="删除" type="button" />
        </div>
        <!-- 数据展示cookie -->
        <div id="data">
            <table id="cookieTable" border="1">
                <tr>
                    <td>name</td>
                    <td>value</td>
                    <!-- <td>path</td> -->
                    <td>domain</td>
                    <td>version</td>
                    <td>comment</td>
                </tr>
                <c:forEach items="${cookies1 }" var="cookie1">
                    <tr>
                        <td>${cookie1.name }</td>
                        <td>${cookie1.value }</td>
                        <%-- <td>${cookie1.path }</td> --%>
                        <td>${cookie1.domain }</td>
                        <td>${cookie1.version }</td>
                        <td>${cookie1.comment }</td>
                    </tr>
                </c:forEach>
            </table>
        </div>
    
    </div>
    
    <div id="win2" class="dialog">
        <div id="movePart">
             标题进行拖拽
            <input id="back2" value="返回2" type="button" />
        </div>
        <div id="content">
            <table id="cookieTable">
                <tr>
                    <div>
                        <td>
                            <label for="name">cookie名称:</label>
                            <input type="text" name="name" id="name" class="required"/>
                        </td>
                        <td>
                            <label for="path" style="display:none">cookie路径:</label>
                            <input type="hidden" name="path" id="path"/>
                        </td>
                    </div>
                </tr>
                <tr>
                    <div>
                        <td>
                            <label for="value">cookie值:</label>
                        </td>
                        <td>
                            <input type="text" name="value" id="value" size="100"/>
                        </td>
        
                    </div>
                </tr>
                <tr>
                    <div>
                        <td>
                            <label for="domain">cookie域名:</label>
                            <input type="text" name="domain" id="domain"/>
                        </td>
                        <td>
                            <label for="version">cookie版本:</label>
                            <input type="text" name="version" id="version"/>
                        </td>
                    </div>
                </tr>
                <tr>
                    <div>
                        <td>
                            <label for="comment">cookiecomment:</label>
                            <input type="text" name="comment" id="comment"/>
                        </td>
                    </div>
                </tr>
                <tr>
                    <td>
                        <input type="button" value="提交" id="send"/>
                    </td>
                    <td>
                        <input type="reset" id="res" value="清空"/>
                    </td>
                </tr>
            </table>
        </div>
    </div>
    
    <div id="mask" class="mask"></div>
    <script type="text/javascript">
    <!--
        function tableTrClick() {
            //选中所有tr,绑定事件
            $('#cookieTable tr').on('click', function(){
                //选中之后改变当前元素的class,清除其他元素的颜色
                $('#cookieTable tr').removeClass("selected1");
                $(this).addClass("selected1");
            });
        }
        
        /**
         * js弹出窗口层 start
         */
           //获取对应标签函数
         function g(id) {
             return document.getElementById(id);
         }
    
         function autoCenter(el) {
             //获取可见窗口大小
             var bodyW = document.documentElement.clientWidth;
             var bodyH = document.documentElement.clientHeight;
             //获取对话框宽、高
             var elW = el.offsetWidth;
             var elH = el.offsetHeight;
    
             el.style.left = (bodyW - elW)/2 + 'px';
             el.style.top = (bodyH - elH)/2 + 'px';
    
         }
         
         function clearForm() {
             $("#name").val("");$("#value").val("");$("#path").val("");
             $("#domain").val("");$("#version").val("");$("#comment").val("");
         }
    
         //点击之后弹出对话框,遮罩设置
         g("add").onclick = function(){
             g("win2").style.display = 'block';
             g("mask").style.display = 'block';
               //先重置表单 cookieTable
             clearForm();
             autoCenter(g("win2"));
         }
         
         //修改
         g("mod").onclick = function(){
             g("win2").style.display = 'block';
             g("mask").style.display = 'block';
             //填充对应的值
             //name, value,path,domain,version,comment
             //先重置表单 cookieTable
             clearForm();
             var name = $('#cookieTable  tr.selected1  td:eq(0)').text();
             var value = $('#cookieTable  tr.selected1  td:eq(1)').text();
             var path = $('#cookieTable  tr.selected1  td:eq(2)').text();
             var domain = $('#cookieTable  tr.selected1  td:eq(3)').text();
             var version = $('#cookieTable  tr.selected1  td:eq(4)').text();
             var comment = $('#cookieTable  tr.selected1  td:eq(5)').text();
             //填充对应的值
             $("#name").val(name);$("#value").val(value);$("#path").val(path);
             $("#domain").val(domain);$("#version").val(version);$("#comment").val(comment);
             
             autoCenter(g("win2"));
         }
    
         //关闭弹出框
         g("back2").onclick = function() {
             g("win2").style.display = 'none';
             g("mask").style.display = 'none';
         }
    
         //窗口大小改变时,对话框始终居中
         window.onresize = function(){
             autoCenter(g('win2'));
         };
    
         //鼠标坐标
         var mx = 0, my = 0;
         var dx = 0, dy = 0;
         var isDraging = false; //是否可以拖拽
         //鼠标按下
         g('movePart').addEventListener('mousedown', function(e) {
             var e = e || window.event;
             //获取点击的鼠标位置
             mx = e.pageX;
             my = e.pageY;
    
             dx = g('win2').offsetLeft;
             dy = g('win2').offsetTop;
             isDraging = true;
         });
         //鼠标移动
         document.onmousemove = function(e){
             var e = e || window.event;
             var x = e.pageX;      //移动时鼠标X坐标
             var y = e.pageY;      //移动时鼠标Y坐标
             if(isDraging){        //判断对话框能否拖动
                 var moveX = dx + x - mx;      //移动后对话框新的left值
                 var moveY = dy + y - my;      //移动后对话框新的top值
                 g('win2').style.left = moveX +'px';       //重新设置对话框的left
                 g('win2').style.top =  moveY +'px';     //重新设置对话框的top
             };
         };
         //鼠标松开
         g('movePart').addEventListener('mouseup',function(){
             isDraging = false;
         });
         //-------------------------------------------js弹出窗口层 end
        
         //--------------------------删除cookie  start
         
        function getCookieval_r(offset) {
            //上offset的位置开始查找的,直到";"的位置。
            var endstr = document.cookie.indexOf(";", offset);
            if(endstr == -1) {
                //如果是末尾
                endstr = document.cookie.length;
            }
            
            return document.cookie.substring(offset, endstr);
        }     
         
        function getCookie(name) {
            var arg = name + "=";
            var alen = arg.length;
            //获取cookie串的长度
            var clen = document.cookie.length;
            var i = 0;
            var j = 0;
            //遍历
            while(i < clen) {
                //当前cookie名字=长度
                j = i + alen;
                //判断是否是要遍历的cookie
                if(document.cookie.substring(i, j) == arg) {
                    //获取cookie值,j为名字=结尾的地方
                    return getCookieval_r(j);
                }
                i = document.cookie.indexOf(" ", i) + 1;
                if(i == 0) {
                    break;
                }
            }
            return '';
        }
         
        function delCookie(name) {
            var exp = new Date();
            exp.setTime(exp.getTime() - 1);
            var cval = getCookie(name);
            if(cval != null) {
                document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + "; path=/";
            }
        }
    
         //--------------------------删除cookie  end
        
        
        function operCookies() {
            
            //点击的时候,发起请求
            $('#select').on('click', function(){
                //获取选中数据
                var selectCookieName = $('#cookieTable  tr.selected1  td:eq(0)').text();
                
                //发起请求
                $.ajax({
                    type:"POST",
                    url:"<%=oper%>",
                    dataType:"json",
                    data:{"operKey":"select"},
                    success:function(msg){
                        //更新页面
                        //1、获取这个table
                        //2、清除标题以下的数据
                        $('#cookieTable tr:gt(0)').empty();
                        //3、解析json,组装数组tr
                        //var jsonArr = eval("(" + msg + ")");
                        //4、添加到table中
                        //从新获取table
                        var $table = $('#cookieTable');
                        //遍历json
                        $.each(msg, function(i, item) {
                            var oneRow = "<tr>";
                            oneRow += "<td>" + item.name + "</td>";
                            oneRow += "<td>" + item.value + "</td>";
                            //oneRow += "<td>" + item.path + "</td>";
                            oneRow += "<td>" + item.domain + "</td>";
                            oneRow += "<td>" + item.version + "</td>";
                            oneRow += "<td>" + item.comment + "</td>";
                            oneRow += "</tr>";
                            
                            $table.append(oneRow);
                        });
                        //从新渲染
                        tableTrClick();
                    }
                });
            });
            
            $('#del').on('click', function(){
                //获取选中数据
                var selectCookieName = $('#cookieTable  tr.selected1  td:eq(0)').text();
                var path = $('#cookieTable  tr.selected1  td:eq(2)').text();
                delCookie(selectCookieName);
                //发起请求
                $.ajax({
                    type:"POST",
                    url:"<%=oper%>",
                    dataType:"json",
                    data:{"operKey":"del","selectCookieName":selectCookieName,"path":path},
                    success:function(msg){
                        //更新页面
                        //1、获取这个table
                        //2、清除标题以下的数据
                        $('#cookieTable tr:gt(0)').empty();
                        //3、解析json,组装数组tr
                        //var jsonArr = eval("(" + msg + ")");
                        //4、添加到table中
                        //从新获取table
                        var $table = $('#cookieTable');
                        //遍历json
                        $.each(msg, function(i, item) {
                            var oneRow = "<tr>";
                            oneRow += "<td>" + item.name + "</td>";
                            oneRow += "<td>" + item.value + "</td>";
                            //oneRow += "<td>" + item.path + "</td>";
                            oneRow += "<td>" + item.domain + "</td>";
                            oneRow += "<td>" + item.version + "</td>";
                            oneRow += "<td>" + item.comment + "</td>";
                            oneRow += "</tr>";
                            
                            $table.append(oneRow);
                        });
                        //从新渲染
                        tableTrClick();
                    }
                });
            });
            
            $('#send').on('click', function(){
                //获取选中数据
                //发起请求
                $.ajax({
                    type:"POST",
                    url:"<%=oper%>",
                    dataType:"json",
                    data:{"operKey":"mod","name":$("#name").val(),"value":$("#value").val(),
                        "path":$("#path").val(),"domain":$("#domain").val(),"version":$("#version").val(),
                        "comment":$("#comment").val()},
                    success:function(msg){
                        //更新页面
                        //1、关闭弹出层
                        g("win2").style.display = 'none';
                         g("mask").style.display = 'none';
                        //2、清除标题以下的数据
                        $('#cookieTable tr:gt(0)').empty();
                        //3、解析json,组装数组tr
                        //var jsonArr = eval("(" + msg + ")");
                        //4、添加到table中
                        //从新获取table
                        var $table = $('#cookieTable');
                        //遍历json
                        $.each(msg, function(i, item) {
                            var oneRow = "<tr>";
                            oneRow += "<td>" + item.name + "</td>";
                            oneRow += "<td>" + item.value + "</td>";
                            //oneRow += "<td>" + item.path + "</td>";
                            oneRow += "<td>" + item.domain + "</td>";
                            oneRow += "<td>" + item.version + "</td>";
                            oneRow += "<td>" + item.comment + "</td>";
                            oneRow += "</tr>";
                            
                            $table.append(oneRow);
                        });
                        //从新渲染
                        tableTrClick();
                    }
                });
            });
            
        }
        
        
        
        $(document).ready(function(){
            
            operCookies();
            tableTrClick();
        });
    
    //-->
    </script>

    代码逻辑实现

     建立vo对象

    package com.xiaof.cookie.vo;
    
    public class CookieVo {
        private String name;
        private String value;
        private String path;
        private String domain;
        private int version;
        private String comment;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getValue() {
            return value;
        }
        public void setValue(String value) {
            this.value = value;
        }
        public String getPath() {
            return path;
        }
        public void setPath(String path) {
            this.path = path;
        }
        public String getDomain() {
            return domain;
        }
        public void setDomain(String domain) {
            this.domain = domain;
        }
        public String getComment() {
            return comment;
        }
        public void setComment(String comment) {
            this.comment = comment;
        }
        public int getVersion() {
            return version;
        }
        public void setVersion(int version) {
            this.version = version;
        }
        
        @Override
        public boolean equals(Object obj) {
            if(obj == this)
                return true;
            
            //根据name判断是否存在
            if(obj instanceof CookieVo) {
                CookieVo temp = (CookieVo) obj;
                
                if(temp.name.equals(name)) {
                    return true;
                } else {
                    return false;
                }
                
            } else {
                return false;
            }
            
        }
        
        @Override
        public int hashCode() {
            //hashcode的获取方式,主要用来在对应不同的容器中,根据hashcode来散列的对象的存放,特定容器可能影响效率
            //并且在比对数据的时候,java是通过hashcode的散列码进行匹配的,故和equals一起重载
            int result = 11;
            result = result * 17 + (name == null ? 0 : name.hashCode());
            result = result * 17 + (value == null ? 0 : value.hashCode());
        
            return result;
        }
        
    }


    控制层代码逻辑

    package com.xiaof.cookie;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.portlet.ActionRequest;
    import javax.portlet.ActionResponse;
    import javax.portlet.PortletException;
    import javax.portlet.RenderRequest;
    import javax.portlet.RenderResponse;
    import javax.portlet.ResourceRequest;
    import javax.portlet.ResourceResponse;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.junit.experimental.theories.PotentialAssignment;
    import org.springframework.http.HttpRequest;
    
    import com.liferay.portal.kernel.json.JSONArray;
    import com.liferay.portal.kernel.json.JSONFactoryUtil;
    import com.liferay.portal.kernel.json.JSONObject;
    import com.liferay.portal.kernel.util.ParamUtil;
    import com.liferay.portal.kernel.util.Validator;
    import com.liferay.portal.util.PortalUtil;
    import com.liferay.util.bridges.mvc.MVCPortlet;
    import com.xiaof.cookie.vo.CookieVo;
    
    /**
     * Portlet implementation class CookieOperator
     */
    public class CookieOperator extends MVCPortlet {
     
    
        @Override
        public void doView(RenderRequest renderRequest,
                RenderResponse renderResponse) throws IOException, PortletException {
    
            //页面初始化的时候,获取所有的cookie
            Cookie cookies[] = renderRequest.getCookies();
            //传递cookies进入前台
    //        List<CookieVo> cookies1 = new ArrayList<CookieVo>();
    //        for(int i = 0; i < cookies.length; ++i) {
    //            CookieVo vo = new CookieVo();
    //            vo.setName(cookies[i].getName());
    //            vo.setValue(cookies[i].getValue());
    //            vo.setPath(cookies[i].getPath());
    //            vo.setDomain(cookies[i].getDomain());
    //            vo.setVersion(cookies[i].getVersion());
    //            vo.setComment(cookies[i].getComment());
    //            cookies1.add(vo);
    //            System.out.println("name=" + cookies[i].getName());
    //            System.out.println("value=" + cookies[i].getValue());
    //            System.out.println("path=" + cookies[i].getPath());
    //            System.out.println("version=" + cookies[i].getVersion());
    //            System.out.println("comment=" + cookies[i].getComment());
    //            System.out.println("domain=" + cookies[i].getDomain());
    //        }
            
            renderRequest.setAttribute("cookies1", cookies);
            
            super.doView(renderRequest, renderResponse);
        }
        
        @Override
        public void serveResource(ResourceRequest resourceRequest,
                ResourceResponse resourceResponse) throws IOException,
                PortletException {
            //获取resourcid
            
            String resourceId = resourceRequest.getResourceID();
            //获取原生httprequest
            HttpServletRequest request = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(resourceRequest));
            HttpServletResponse response = PortalUtil.getHttpServletResponse(resourceResponse);
            
            //获取参数
            if(resourceId.equals("cookieAjax")) {
                //获取参数
                String operKey = ParamUtil.get(resourceRequest, "operKey", "select");
                //获取cookie的name
                String cookieName = ParamUtil.get(resourceRequest, "selectCookieName", "");
                
                if(operKey.equals("select")) {
                    //这个是查询所有的cookie
                    List<CookieVo> cookies1 = readCookies(request);
                    //返回json数据
                    JSONArray jsonArray = JSONFactoryUtil.createJSONArray();
                    //遍历组装
                    for(int i = 0; i < cookies1.size(); ++i) {
                        CookieVo cookieVo = cookies1.get(i);
                        JSONObject obj = JSONFactoryUtil.createJSONObject();
                        obj.put("name", cookieVo.getName());
                        obj.put("value", cookieVo.getValue());
                        obj.put("path", cookieVo.getPath());
                        obj.put("version", cookieVo.getVersion());
                        obj.put("comment", cookieVo.getComment());
                        obj.put("domain", cookieVo.getDomain());
                        jsonArray.put(obj);
                    }
                    
                    //最后返回
                    PrintWriter pw = response.getWriter();
                    pw.write(jsonArray.toString());
                } else if(operKey.equals("mod")) {
                    String name = ParamUtil.get(request, "name", "");
                    String value = ParamUtil.get(request, "value", "");
                    String path = ParamUtil.get(request, "path", "");
                    String domain = ParamUtil.get(request, "domain", "");
                    int version = Integer.valueOf(ParamUtil.get(request, "version", "0") == ""?"0":"0");
                    String comment = ParamUtil.get(request, "comment", "");
                    
                    //设置到对应的cookie
                    if(Validator.isNotNull(name) && Validator.isNotNull(value)) {
                        Cookie cookie = new Cookie(name, value);
                        if(Validator.isNotNull(path))
                            cookie.setPath(path);
                        if(Validator.isNotNull(domain))
                            cookie.setDomain(domain);
                        if(Validator.isNotNull(version))
                            cookie.setVersion(version);
                        if(Validator.isNotNull(comment))
                            cookie.setComment(comment);
                        
                        response.addCookie(cookie);
                    }
                    
                    //这个是查询所有的cookie
                    CookieVo newTemp = new CookieVo();
                    newTemp.setName(name); newTemp.setValue(value);newTemp.setComment(comment);
                    newTemp.setDomain(domain);newTemp.setPath(path);newTemp.setVersion(version);
                    List<CookieVo> cookies1 = readCookies(request);
                    
                    if(cookies1.contains(newTemp)) {
                        //如果包含更新值,注意是深拷贝
                        newTemp = cookies1.get(cookies1.indexOf(newTemp));
                        newTemp.setValue(value);newTemp.setComment(comment);
                        newTemp.setDomain(domain);newTemp.setPath(path);
                        newTemp.setVersion(version);
                    } else {
                        //不包含新增
                        cookies1.add(newTemp);
                    }
                    
                    //返回json数据
                    JSONArray jsonArray = JSONFactoryUtil.createJSONArray();
                    //遍历组装
                    for(int i = 0; i < cookies1.size(); ++i) {
                        CookieVo cookieVo = cookies1.get(i);
                        JSONObject obj = JSONFactoryUtil.createJSONObject();
                        
                        obj.put("name", cookieVo.getName());
                        obj.put("value", cookieVo.getValue());
                        obj.put("path", cookieVo.getPath());
                        obj.put("version", cookieVo.getVersion());
                        obj.put("comment", cookieVo.getComment());
                        obj.put("domain", cookieVo.getDomain());
                        
                        jsonArray.put(obj);
                    }
                    
                    //最后返回
                    PrintWriter pw = response.getWriter();
                    pw.write(jsonArray.toString());
                    
                } else if(operKey.equals("del")) {
                    //删除cookie
                    String name = ParamUtil.get(request, "selectCookieName", "");
    //                String path = ParamUtil.get(request, "path", "");
                    List<CookieVo> cookies1 = readCookies(request);
                    CookieVo newTemp = new CookieVo();
                    newTemp.setName(name);
                    cookies1.remove(newTemp);
                    Cookie cookies[] = request.getCookies();
                    
                    for(Cookie cookie : cookies){  
                        if(cookie.getName().equals(name)){ 
                            Cookie cookie1 = new Cookie(name, null);
                            cookie1.setMaxAge(0);// 立即销毁cookie  
    //                        if(Validator.isNotNull(path)) {
    //                            cookie1.setPath(path);  
    //                        }
                            response.addCookie(cookie1);  
                            break;
                        }  
                    }  
                    
                    //返回json数据
                    JSONArray jsonArray = JSONFactoryUtil.createJSONArray();
                    //遍历组装
                    for(int i = 0; i < cookies1.size(); ++i) {
                        CookieVo cookieVo = cookies1.get(i);
                        JSONObject obj = JSONFactoryUtil.createJSONObject();
                        
                        obj.put("name", cookieVo.getName());
                        obj.put("value", cookieVo.getValue());
                        obj.put("path", cookieVo.getPath());
                        obj.put("version", cookieVo.getVersion());
                        obj.put("comment", cookieVo.getComment());
                        obj.put("domain", cookieVo.getDomain());
                        
                        jsonArray.put(obj);
                    }
                    
                    //最后返回
                    PrintWriter pw = response.getWriter();
                    pw.write(jsonArray.toString());
                }
            }
            
            super.serveResource(resourceRequest, resourceResponse);
        }
        
        private List<CookieVo> readCookies(HttpServletRequest request) {
            List<CookieVo> cookies1 = new ArrayList<CookieVo>();
            Cookie cookies[] = request.getCookies();
            for(int i = 0; i < cookies.length; ++i) {
                CookieVo vo = new CookieVo();
                vo.setName(cookies[i].getName());
                vo.setValue(cookies[i].getValue());
                vo.setPath(cookies[i].getPath());
                vo.setDomain(cookies[i].getDomain());
                vo.setVersion(cookies[i].getVersion());
                vo.setComment(cookies[i].getComment());
                cookies1.add(vo);
            }
            
            return cookies1;
        }
        
        public void modCookie(ActionRequest request,ActionResponse response) throws IOException {
            //获取表单参数,设置到cookie中
            //name, value,path,domain,version,comment
            HttpServletResponse httpServletResponse = PortalUtil.getHttpServletResponse(response);
            
            String jspPage = ParamUtil.getString(request, "jspPage");
            
            String name = ParamUtil.get(request, "name", "");
            String value = ParamUtil.get(request, "value", "");
            String path = ParamUtil.get(request, "path", "");
            String domain = ParamUtil.get(request, "domain", "");
            int version = Integer.valueOf(ParamUtil.get(request, "version", "0") == ""?"0":"0");
            String comment = ParamUtil.get(request, "comment", "");
            
            //设置到对应的cookie
            if(Validator.isNotNull(name) && Validator.isNotNull(value)) {
                Cookie cookie = new Cookie(name, value);
                if(Validator.isNotNull(path))
                    cookie.setPath(path);
                if(Validator.isNotNull(domain))
                    cookie.setDomain(domain);
                if(Validator.isNotNull(version))
                    cookie.setVersion(version);
                if(Validator.isNotNull(comment))
                    cookie.setComment(comment);
                
                httpServletResponse.addCookie(cookie);
            }
            
            response.sendRedirect("jspPage", jspPage);
        }
        
    }


    效果展示

     

  • 相关阅读:
    代码改变世界,随手写了点代码解决了一个小学生级别的作业题,编程要从娃娃抓起
    智和信通实现信创国产化适配 助力信创生态智能运维体系建设
    智和信通赋能国产信创 建设IT智能监控运维体系
    北京智和信通智慧档案馆网络监控运维解决方案
    图书馆网络运维监控安全态势感知方案-智和信通
    广播电视网络运维安全态势感知解决方案
    北京智和信通荣膺2020智能运维星耀榜最具影响力企业
    直播新规出台!如何用技术管住乱打赏的「熊孩子」?
    是什么让你在赛博空间更好看?
    Niu Talk 数据科学系列论坛:明晚,我们聊聊大数据与开源
  • 原文地址:https://www.cnblogs.com/cutter-point/p/8477479.html
Copyright © 2020-2023  润新知