Java类中设置Cookie的SetDomain属性问题

在Cookie跨域时,需要设置Cookie的SetDomain参数,如果Cookie的设置保存在java类中执行,问题是这样的:
[code="java"]
String domain=".test.com"
Cookie c = new Cookie("userid", “aaaaaaa”);
c.setPath("/");
c.setDomain(domain);
Cookie c1 = new Cookie("pass", member.getPassword());
c1.setPath("/");
c1.setDomain(domain);
[/code]
这样时,Cookie的作用域不起作用。
而c.setDomain(".test.com");确可以,这是什么原因呀?

2个回答

朋友,问题要自动关闭啦,结分哦

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java端和js端cookie跨域共享
关于cookie共享技术,查了网上的资料,有两种方式:后台服务端和前台js端。 我在网站A后台服务端设置cookie如下: Cookie cookie = new Cookie("mobile", "*****"); cookie.setPath("/"); cookie.setDomain("cms.ban.net"); response.addCookie(cookie); 然后在网站B页面中获取: var allcookies = document.cookie; 发现allcookies中没有以上服务端设置的cookie 而我如果在网站A的页面中设置cookie: document.cookie = "mobile=" + escape(phone) + ";path=/;domain=cms.ban.net"; 再在网站B页面中获取就可以取出来 所以请问下,这是什么原因?谢谢!
诡异的情况,WIN10下无法保存cookie~~
系统:WIN10 开发工具:MyEclipse 2014 服务器:Tomcat 6 - Tomcat 8 浏览器:IE11,Chrome ------------------------------------------------------ 现象:保存cookie 的代码在xp上面试了没有问题,cookie正常保存。但是在WIN10上,先清空浏览器的cookie,打开测试页面,除了Tomcat 的favicon[1].ico 文件,再没有发现任何文件了。 将IE11的cookie设置为提示,刷新页面的时候会提示是否使用cookie,点击同意,但是任然没有cookie文件和页面缓存。但是其他程序会有页面缓存和cookie。 下面是JSP页面写的代码~~,而且也读取不了cookie ,得到的对象都是null ``` <% Cookie cookie = new Cookie("root" , "1234567890"); cookie.setDomain("127.0.0.1"); cookie.setPath("/"); cookie.setMaxAge(60*60); response.addCookie(cookie); %> ```
cookie的操作
我在项目中测试 Cookie cookie = new Cookie("jobqun_beta", "abc"); cookie.setMaxAge(60*60*2); cookie.setPath("/"); //cookie.setDomain(WebConstant.DOMAIN); response.addCookie(cookie); Cookie[] cookies = request.getCookies(); if (cookies != null) { String r = null; for (int i = 0; i < cookies.length; i++) { if (cookies[i].getName().equals(WebConstant.COOKIE_DAMAIN_NAME)) { r = URLDecoder.decode(cookies[i].getValue(), "UTF-8"); System.out.println(r+"------------"+cookies[i].getMaxAge()); break; } } } 然后输出的cookie的时间是 -1 我明明设置的是60*60*2啊,怎么变成-1了 求高手求解
Tomcat localhost 的 cookie 域是什么?有人知道么?
代码: Cookie cookie = new Cookie("aaa", "bbb"); cookie.setMaxAge(10000); cookie.setDomain(""); 这边写什么? cookie.setPath("/"); response.addCookie(cookie); localhost 本机ip 都没用。
cookie失效的问题
问题: 当设置cookie失效了以后,cookie还是能正常访问 描述: 设置cookie 代码: Cookie wangyu = new Cookie(this.cookiename, username); wangyu.setDomain(".dog.com"); wangyu.setMaxAge(60000); wangyu.setValue(username); wangyu.setPath("/"); response.addCookie(wangyu); 失效代码: Cookie[] diskCookies = request.getCookies(); if (diskCookies != null) { for (int i = 0; i < diskCookies.length; ++i) { System.out.println("--------logout.jsp页面提交"+diskCookies[i].getName()); if (diskCookies[i].getName().equals(this.cookieName)) { System.out.println("session time is "+diskCookies[i].getMaxAge()); diskCookies[i].setMaxAge(0); response.addCookie(diskCookies[i]); System.out.println("cookie setup is done,the time is"+diskCookies[i].getMaxAge()); System.out.println("-------destory session success------"); } } } 为什么设置成功后,还是能正常访问? [b]问题补充:[/b] 试过了,不行! [b]问题补充:[/b] 利用同名的cookie覆盖 还是一样 郁闷
utgard在使用异步(Async20Access)读取数据时,总是出错,我的邮箱:sangjingrui@163.com
1. 在使用utgard访问OPC服务器,使用异步(Async20Access)读取数据时,总是出错,同步读取就可以,我想问一下,这是什么问题? 下面是console输出:Recieved FAULT 最后接到一个FAULT,不知道什么原因,请赐教! 2. 代码: public static void main ( final String[] args ) throws Throwable { // create connection information final ConnectionInformation ci = new ConnectionInformation (); ci.setHost("127.0.0.1"); // 电脑IP ci.setDomain(""); // 域,为空就行 ci.setUser("opcuser"); // 电脑上自己建好的用户名 ci.setPassword("123456"); //密码 // 使用KEPServer的配置 ci.setClsid("7BC0CC8E-482C-47CA-ABDC-0FE7F9C6E729"); final Set<String> items = new HashSet<String> (); if ( items.isEmpty () ) { items.add ("ch1.d1.tag1"); items.add ("ch1.d1.tag2"); } // create a new server final Server server = new Server ( ci, Executors.newSingleThreadScheduledExecutor () ); try { // connect to server server.connect (); // add sync access final AccessBase access = new Async20Access ( server, 100, false ); for ( final String itemId : items ) { access.addItem ( itemId, new DataCallbackDumper () ); } // start reading access.bind (); // wait a little bit _log.info ( "Sleep for some seconds to give events a chance..." ); Thread.sleep ( 10 * 1000 ); _log.info ( "Returned from sleep" ); // stop reading access.unbind (); } catch ( final JIException e ) { System.out.println ( String.format ( "%08X: %s", e.getErrorCode (), server.getErrorMessage ( e.getErrorCode () ) ) ); } } } 3. 我发现同样的代码,采用同步读取就没有问题,这是为什么?是不是对异步需要对环境进一步配置? 我的邮箱:sangjingrui@163.com
struts2中add cookie 不能再客户端生成cookie文件,为什么?
我做自动登录的功能,是这样操作的: [code="java"] package com.zuwoba.presentation.action.account; import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import org.apache.struts2.StrutsStatics; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionContext; import com.zuwoba.model.User; import com.zuwoba.model.UserSession; import com.zuwoba.presentation.action.base.BaseAction; import com.zuwoba.util.EmailLoginAddress; import com.zuwoba.util.MD5_Encoding; /** * @project_name zuwoba * @file_name LoginAction.java * @author tianhandigeng * @version Oct 25, 2010 2:53:04 PM * @declaration */ public class LoginAction extends BaseAction implements ServletRequestAware,ServletResponseAware{ private String email_username; private String password; private String captcha; private String autologin; private HttpServletRequest request; private HttpServletResponse response; // 提示窗口 private String hint; private String tip; public String getTip() { return tip; } public void setTip(String tip) { this.tip = tip; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getAutologin() { return autologin; } public void setAutologin(String autologin) { this.autologin = autologin; } public String getEmail_username() { return email_username; } public void setEmail_username(String email_username) { this.email_username = email_username; } public String getHint() { return hint; } public void setHint(String hint) { this.hint = hint; } public String getCaptcha() { return captcha; } public void setCaptcha(String captcha) { this.captcha = captcha; } public void setServletRequest(HttpServletRequest servletRequest) { this.request=servletRequest; } public void setServletResponse(HttpServletResponse servletResponse) { this.response=servletResponse; } @SuppressWarnings("unchecked") public String execute() { //// HttpServletResponse response = (HttpServletResponse) ActionContext //// .getContext().get(StrutsStatics.HTTP_RESPONSE); //// HttpServletRequest request = (HttpServletRequest) ActionContext //// .getContext().get(StrutsStatics.HTTP_REQUEST); //// HttpSession session = request.getSession(); // HttpServletResponse response=(HttpServletResponse)ServletActionContext.getResponse(); // HttpServletRequest request=(HttpServletRequest)ServletActionContext.getRequest(); HttpSession session=request.getSession(); //获得域名 // String host=request.getServerName(); String host="ceshi"; email_username = this.getEmail_username().trim(); password = this.getPassword().trim(); captcha = this.getCaptcha().trim().toLowerCase(); autologin = this.getAutologin(); // 密码加密 MD5_Encoding md5 = new MD5_Encoding(); password = md5.getMD5ofStr(password); if (!captcha.equals(session.getAttribute("idcode"))) { this.setTip("验证码错误"); this.setHint("failed"); return INPUT; } else { // Email登录 User user1 = userService.findUserByEmailPassword(email_username, password); if (user1 != null) { if ("N".equals(user1.getEnable())) {// 邮件登陆但没有激活 String emailAddress = EmailLoginAddress .getEmialLoginAddress(email_username); session.setAttribute("email", email_username); session.setAttribute("secret", user1.getSecret()); session.setAttribute("tempname", user1.getUsername()); session.setAttribute("emailAddress", emailAddress); return "unverified"; } else { // 处理自动登录 if (autologin != null) { // 创建两个cookie对象 // 一个cookie记录用户名,另一个记录唯一的验证码 // 并将此验证码写入数据库,以备用户返回时查询(防止伪造cookie) Cookie cookie1 = new Cookie("SESSION_LOGIN_USERNAME", user1 .getUsername()); cookie1.setMaxAge(60 * 60 * 24 * 14);// 设置cookie有效期为2周 cookie1.setPath("/"); cookie1.setDomain(host); response.addCookie(cookie1); String sessionid = session.getId(); Cookie cookie2 = new Cookie("SESSION_ID", sessionid); cookie2.setMaxAge(60 * 60 * 24 * 14); cookie2.setPath("/"); cookie2.setDomain(host); response.addCookie(cookie2); // 在数据库中插入相应记录 UserSession userSession = new UserSession(); userSession.setUsername(user1.getUsername()); userSession.setSessionid(sessionid); userService.addUserSession(userSession); } session.setAttribute("user", user1); return SUCCESS; } } else { // 用户名登陆 User user2 = userService.findUserByUserNamePassword( email_username, password); if (user2 != null) { if ("N".equals(user2.getEnable())) {// 用户名登陆但没有激活 String emailAddress = EmailLoginAddress .getEmialLoginAddress(email_username); session.setAttribute("email", email_username); session.setAttribute("secret", user2.getSecret()); session.setAttribute("tempname", user2.getUsername()); session.setAttribute("emailAddress", emailAddress); return "unverified"; } else { // 处理自动登录 if (autologin != null) { // 创建两个cookie对象 // 一个cookie记录用户名,另一个记录唯一的验证码 // 并将此验证码写入数据库,以备用户返回时查询(防止伪造cookie) Cookie cookie1 = new Cookie("SESSION_LOGIN_USERNAME", user2 .getUsername()); cookie1.setMaxAge(60*60*24*14);// 设置cookie有效期为2周 cookie1.setPath("/"); cookie1.setDomain(host); response.addCookie(cookie1); String sessionid = session.getId(); Cookie cookie2 = new Cookie("SESSION_ID", sessionid); cookie2.setMaxAge(60 * 60 * 24 * 14); cookie2.setPath("/"); cookie2.setDomain(host); response.addCookie(cookie2); // 在数据库中插入相应记录 UserSession userSession = new UserSession(); userSession.setUsername(user2.getUsername()); userSession.setSessionid(sessionid); userService.addUserSession(userSession); } session.setAttribute("user", user2); return SUCCESS; } } else { this.setHint("failed"); this.setTip("不存在这样的Email或用户名或密码错误"); return INPUT; } } } } } [/code] 奇怪的是,客户端就是不能生成cookie文件,我真的不知道是为什么了,哪位大哥分析一下是什么原因,小弟感激不尽
请教关于session传送的问题
请问javaeye中的二级域名的session中怎么传送的? 不同的二级域名情况下就算是相同的虚拟主机session也是不同的,您们的程序是如何实现的? 我用的是java开发,请各大哥能指引一下吗? 还有一个问题:如javaeye登录再将IE浏览器的Cookie删除,而当前的用户也是登录的(尽管是新建一个选项卡javaeye网页上的用户也是登录的);可再打开一个新的IE浏览器那用户就已不是登录了. 感觉似是不用Cookie但实现上也是用到Cookie登录的,两个不解,烦请哥们指引一下!!! [b]问题补充:[/b] SSO 单点登录----是解决多个域名不同webapps的登录方式; 我现在就是不明白: 如何把所有不同二级域名在一个web app实现session共享;这种方式可以在tomcat上有的设置的?还是要自己重写javax.servlet.http.HttpSession.getId(),如何是重写您们是用java.util.Random.nextInt(number)来自己定正义的吗? 烦指哥们指引一下!最好能给出一些代码实例,谢谢! [b]问题补充:[/b] 将server.xml的Context加入privileged="true" cookies="false"后,tomcat就不会创建Cookies的JSESSIONID并且每个连接sessionId也是不断更新的; 说明tomcat的HttpSession.getId()是根据Cookies的JSESSIONID创建的,如果没有了JSESSIONID就会新创建一个sessionId,现在问题就是如何将tomcat默认JSESSIONID创建在同一个域cookie.setDomain(".1333.mobi"); 解决了这个问题应该可以实现共享二级域名了
寻求HttpClient无法写Cookie的解决方法
问题描述: 公司申请了一个超短域名,假设改域名为 a.cn,有多个二级域名 比如 www.a.cn; file.a.cn;这些二级域名都有一个共同的功能, 就是要写cookie,而且这个cookie要在a.cn内共享。根据短域名写cookie的可行性,只能把写Cookie的功能统一交给a.cn这台服务器来执行才可以写成功。所以我现在如果要在www.a.cn服务器上写cookie(可供a.cn共享的Cookie),就只能借助HttpClient 在a.cn服务器上有一个Servlet,用来负责写Cookie,www.a.cn这台服务器上的应用程序借助HttpClient调用a.cn上的Servlet 一切执行都没有问题,但是就是Cookie无法写入文件中。如果在IE中直接调用那个Servlet,这可以把Cookie成功写入文件。 假如Servlet的完整请求地址为 http://a.cn/servlet a.an 服务器负责写Cookie的代码如下 [code="java"] public class CookieServlet extends HttpServlet { public CookieServlet() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie cookie = new Cookie("CookieName", "haha"); cookie.setMaxAge(100000); cookie.setPath("/"); //这个不需要设置 //cookie.setDomain("a.cn"); response.addCookie(cookie); } public void init() throws ServletException { } } [/code] www.a.cn的请求代码如下 [code="java"] public class Test { public static void main(String args[]) { String cookieUrl = "http://a.cn/servlet"; String result = HttpUtils.executeGetMethod(cookieUrl); //其余代码省略,这里执行完后,并没有得到理想的结果。cookie没有写成功,如果 //在IE浏览器中执行 执行http://a.cn/servlet ,则可以成功写cookie } [/code] [code="java"] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HostConfiguration; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpConnectionManager; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.cookie.CookiePolicy; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class HttpUtils { private static MultiThreadedHttpConnectionManager httpManager; private static final Log log = LogFactory.getLog(HttpUtils.class); public static HttpConnectionManager getHttpManager() { if (httpManager == null) { httpManager = new MultiThreadedHttpConnectionManager(); httpManager.getParams().setConnectionTimeout(3000); } return httpManager; } public static HttpClient createHttpClient() { HttpClient client = new HttpClient(getHttpManager()); return client; } public static String executeGetMethod(String url) { HttpMethod method = new GetMethod(url.toString()); return getHttpResult(method); } public static String executePostMethod(String url, Map<String, String> map) { PostMethod method = new InnerPostMethod(url); method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); if (map == null || map.size() == 0) { throw new IllegalArgumentException("map must be not null"); } NameValuePair[] data = new NameValuePair[map.size()]; Set<Map.Entry<String, String>> set = map.entrySet(); Iterator<Map.Entry<String, String>> it = set.iterator(); int i = 0; while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); data[i++] = new NameValuePair(entry.getKey(), entry.getValue()); } method.setRequestBody(data); return getHttpResult(method); } private static String getHttpResult(HttpMethod method) { InputStream is = null; try { HttpClient client = HttpUtils.createHttpClient(); int stat = client.executeMethod(method); if (stat != HttpStatus.SC_OK) { return null; } is = method.getResponseBodyAsStream(); BufferedReader reader = new BufferedReader(new InputStreamReader( is, "utf-8")); StringBuilder builder = new StringBuilder(); String tmp = null; while ((tmp = reader.readLine()) != null) { builder.append(tmp); } // Cookie cks[] = client.getState().getCookies(); // if (cks != null) { // for (Cookie c : cks) { // System.out.println(c.getName()+"\t"+c.getValue()); // } // } return builder.toString(); } catch (HttpException e) { return null; } catch (IOException e) { return null; } finally { method.releaseConnection(); try { if (is != null) { is.close(); } } catch (IOException e) { e.printStackTrace(); } } } static class InnerPostMethod extends PostMethod { public InnerPostMethod(String url) { super(url); } @Override protected String getContentCharSet(Header contentheader) { return "UTF-8"; } } } [/code] 希望有遇到过类似问题的高手,给予帮助,谢谢
携带cookies通过路由器密码验证并对路由器进行配置
看了很多大神的帖子,使用了自己抓到的cookies并且携带它访问路由器配置页面,但还是出现了“no acess”的错误,已经搞了很久了,还是不知道哪里错了。我也想过先向路由器登陆界面传参数,可是抓不到get的参数名。 这是代码 import java.io.ObjectInputStream.GetField; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.CookieStore; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.cookie.Cookie; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.cookie.BasicClientCookie; import org.apache.http.impl.cookie.BasicClientCookie2; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; /** * 加入了cookies进行登陆,但仍然出现了403错误。 * @author Administrator * */ public class Main { public static void main(String[] args) throws Exception { //新建cookies BasicClientCookie2 cookie = new BasicClientCookie2("Authorization", "Basic%20YWRtaW46MTExMTEx"); cookie.setDomain("192.168.1.1"); cookie.setPath("/"); BasicClientCookie cookie2 = new BasicClientCookie("ChgChgPwdSubTag", ""); cookie2.setDomain("192.168.1.1"); cookie2.setPath("/"); //新建一个httpclient DefaultHttpClient httpclient=new DefaultHttpClient(); BasicCookieStore basicCookieStore = new BasicCookieStore(); basicCookieStore.addCookie(cookie); httpclient.setCookieStore(basicCookieStore); System.out.println(basicCookieStore.getCookies().get(0).getName()); System.out.println(basicCookieStore.getCookies().add(cookie2)); System.out.println(basicCookieStore.getCookies().get(0).getValue()); HttpGet get = new HttpGet("http://192.168.1.1/userRpm/VirtualServerRpm.htm"); HttpResponse response = httpclient.execute(get); if(response.getStatusLine().getStatusCode()==200){//如果状态码为200,就是正常返回 String result=EntityUtils.toString(response.getEntity()); //得到返回的字符串 System.out.println(result); } } }
同一局域网里,不同服务器的项目,项目之间怎么通过cookie传值
同一局域网里,不同服务器的项目怎样通过cookie传值呢? 假如有项目a,项目b。用户从项目a登录成功后,用户信息保存在cookie中,从项目a中由一个连接地址转到项目b中,那么在项目b中可以获取到用户cookie值吗? 因为项目a和项目b不用整合,所以不需用cas单点登录;项目a和项目b不在同一服务器下,用cookie.setPath()不管用;项目a和项目b都是直接通过局域网ip地址访问,cookie1.setDomain()不知怎么处理?!;使用了p3p跨域处理cookie好像也不行。 请各位指点下。。。。。非常感谢。。。。
utgard连接opc服务器的java问题。
在网上看到了好多这样的代码,如下: public static void main(String[] args) throws Exception { final ConnectionInformation ci = new ConnectionInformation(); ci.setHost("192.168.0.1"); ci.setDomain(""); ci.setUser("OPCUser"); ci.setPassword("123456"); // KEPServer ci.setClsid("7BC0CC8E-482C-47CA-ABDC-0FE7F9C6E729"); . . . . "7BC0CC8E-482C-47CA-ABDC-0FE7F9C6E729" 谁知道这个参数是怎么来的吗?
分别用多线程处理两段代码,怎样写才能实现
在我controller请求层里面有接收到页面传过来的文档后,分别对每一条数据进行对应的逻辑操作,怎样才能保证for循环里面的两条代码分别用多线程来执行呢? 代码如下: public Map<String, Object> upload(@RequestParam(value = "path", required = false) String path, @RequestParam(value = "dns1", required = false) String dns1, @RequestParam(value = "dns2", required = false) String dns2, HttpServletResponse response,HttpServletRequest request)throws Exception { Map<String, Object> map = new HashMap<String, Object>(); String webPath=request.getServletContext().getRealPath(""); //读取TXT文件里面的域名信息 List<String> importTxt = TextUtils.importTxt(new File(webPath + path)); Dns dns = new Dns(); List<Dns> original_datas = new ArrayList<>();//dns1数据 List<Dns> this_datas = new ArrayList<>();//dns2数据 ExecutorService pool = Executors.newFixedThreadPool(10); for (String domain : importTxt) { if (domain == null ||domain.isEmpty()){ dns.setDomain("域名空"); }else { //解析两份数据(这两条代码需要分别用多线程来执行) //original_datas.addAll(DnsUtils.getIps(domain, dns1)); //this_datas.addAll(DnsUtils.getIps(domain, dns2)); Thread thread1 = new Thread(new Runnable() { @Override public void run() { try { original_datas.addAll(DnsUtils.getIps(domain, dns1)); System.out.println("线程1="+original_datas.toString()); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } }); Thread thread2 = new Thread(new Runnable() { @Override public void run() { try { this_datas.addAll(DnsUtils.getIps(domain, dns2)); System.out.println("线程2="+this_datas.toString()); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } }); pool.execute(thread1); pool.execute(thread2); } } pool.shutdown(); Thread.sleep(5000); System.out.println("original_datas="+original_datas.toString()); System.out.println("this_datas="+this_datas.toString()); //数据对比 List<String> dnsDuibi = MyUtil.dnsDuibi(original_datas,this_datas); dnsService.addList(original_datas); dnsService.addList(this_datas); map.put("msg", "上传成功"); map.put("success", true); //map.clear(); // 原数据比 this_data map.put("original_datas", original_datas); map.put("this_datas", this_datas); map.put("dnsDuibi", dnsDuibi); return map; 我上面自己写的那个线程是有问题的,因为不睡眠的话,系统始终比线程块快,会造成外面的输出 会没有值,而里面的输出有值的情况,而且这样写效率也不行. 求大佬指点迷津,发现自己多线程都没搞明白,心态有点崩
远程访问opcServer,参数设值。每个参数的意思是什么。一直都似懂非懂的
ConnectionInformation ci = new ConnectionInformation(); ci.setHost("10.10.150.40"); ci.setDomain(""); ci.setUser("anyone"); ci.setPassword("1"); ci.setProgId("RSLinx OPC Server"); ci.setClsid("A05BB6D5-2F8A-11D1-9BB0-080009D01446"); final Server s = new Server(ci,Executors.newSingleThreadScheduledExecutor()); autos = new AutoReconnectController(s); autos.connect();Thread.sleep(100); Domin user password progid clsid 分别是什么意思 要怎么赋值
项目从mysql迁移到oracle报错
本来没有一点错误,迁移之后出现了很多,不知道哪位大神见过下面的问题: 17:23:54,967 ERROR BasicPropertyAccessor:118 - IllegalArgumentException in class: com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity, setter method of property: TemporaryIId 17:23:54,995 ERROR BasicPropertyAccessor:122 - expected type: int, actual value: java.math.BigDecimal 17:23:55,000 DEBUG ConnectionManager:325 - transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources! 17:23:55,006 ERROR MonTaskConDao:101 - org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity.TemporaryIId 17:23:55,009 DEBUG ConnectionManager:464 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)] 17:23:55,024 DEBUG ConnectionManager:325 - transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources! 17:23:55,071 ERROR DataQualityMonitoringImpl:65 - org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity.TemporaryIId 17:23:55,073 ERROR MonitoringTaskConfigurationAction:54 - org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity.TemporaryIId DAO层的相关函数是这样写的: public List<MonTaskConEntity> getMonTaskConList() throws Exception { Session session = sessionFactory.openSession(); String sql = "SELECT d1.domain_id TemporaryIId, " + "d1.job_id TemporaryId, " + "d1.job_name job_name, " + "d1.is_effective is_effective, " + "d1.object_type object_type, " + "d1.object_name object_name, " + "d1.object_ename object_ename, " +"d1.object_location object_location ," +"d1.time_field time_field, " + "COUNT(d2.rule_id) columnNum " + "from dq_conf_jobs d1, dq_conf_rule d2 " //+ "where (d1.job_id = d2.job_id OR d1.job_id not in (SELECT job_id from dq_conf_rule)) AND d2.is_effective = '1'" //+ "where ((d1.job_id = d2.job_id AND d1.domain_id = d2.domain_id) OR d1.job_id not in (SELECT job_id from dq_conf_rule)) AND d2.is_effective = '1'" + "where d1.job_id = d2.job_id OR d1.job_id not in (SELECT job_id from dq_conf_rule)" //-- + "GROUP BY d1.job_id"; //非聚合函数字段都要在group by里面好像 + "GROUP BY d1.job_id,d1.domain_id,d1.job_name,d1.is_effective,d1.object_type,d1.object_name,d1.object_ename,d1.object_location,d1.time_field"; //String sql = ""; try { Query query = session.createSQLQuery(sql) .addScalar("TemporaryIId") .addScalar("TemporaryId") .addScalar("job_name") .addScalar("object_type") .addScalar("object_name") .addScalar("is_effective") .addScalar("object_ename") .addScalar("object_location") .addScalar("time_field") .addScalar("columnNum", Hibernate.INTEGER) .setResultTransformer(Transformers.aliasToBean(MonTaskConEntity.class)); List<MonTaskConEntity> resultList = query.list(); //查询rule总数,进行过滤 String countSql = "SELECT COUNT(*) FROM dq_conf_rule"; Query countQuery = session.createSQLQuery(countSql); int count = ((Number) countQuery.uniqueResult()).intValue(); //数据整理,id.job_id的赋值,如果rule行数为总行数,则表明该job并没有rule if (resultList != null && resultList.size() > 0) { for (MonTaskConEntity entity : resultList) { if (entity.getColumnNum() == count) { entity.setColumnNum(0); } MonTaskConEntityId idEntity = new MonTaskConEntityId(); idEntity.setJob_id(entity.getTemporaryId()); idEntity.setDomain_id(entity.getTemporaryIId()); entity.setId(idEntity); } } return resultList; } catch (Exception e) { log.error(e); throw e; } finally { session.close(); } } 目的是把表格的数据获取显现出来 谢谢大家
AWS S3 2.x版本上传对象报Lambda异常
公司最近接了个海外项目,需要用到AWS的S3对象存储,但是网上都是1.11.x版本的资料,和2.x相差有点大。 我参照了亚马逊gitHub上的2.x源码示例,写了个S3上传对象的例子。文件是成功上传了,能在控制台看到,但是后台报Lambda异常了,不知如何解决。 引入的S3版本如下: ``` <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <version>2.5.25</version> </dependency> ``` 代码如下: ``` public static void main(String[] args) { S3Config config = new S3Config(); config.setAccessKeyId("xxxxxxxxxxxxxx"); config.setSecretAccessKey("xxxxxxxxxxxxxxxx"); config.setBucketName("aws-s3-test111"); config.setRegion("ap-south-1"); config.setDomain("https://s3.ap-south-1.amazonaws.com/"); String key = "2019-04-11/today_1.jpg"; Region region = Region.of(config.getRegion()); try { AwsCredentials awsCred = AwsBasicCredentials.create(config.getAccessKeyId(), config.getSecretAccessKey()); S3Client client = S3Client.builder().credentialsProvider(StaticCredentialsProvider.create(awsCred)).region(region).build(); String filePath = "F:微信图片_20180122165411.jpg"; File file = new File(filePath); InputStream inputStream = new FileInputStream(file); client.putObject(PutObjectRequest.builder().bucket(config.getBucketName()).key(key).build(), RequestBody.fromInputStream(inputStream, inputStream.available())); } catch (IOException e) { e.printStackTrace(); } } ``` 异常如下图 ![图片说明](https://img-ask.csdn.net/upload/201904/11/1554974609_417149.jpg)
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
进程通信方式总结与盘点
​ 进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 ​ 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为: 效率低:一次只可操作少量的...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
听说了吗?阿里双11作战室竟1根网线都没有
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年使用商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部使用阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障...
在阿里,40岁的奋斗姿势
在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神赋 “翩若惊鸿,婉若游龙。荣曜秋菊,华茂春松。髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。” 爱洛神,爱阿里云 2018年,阿里云网络产品部门启动洛神2.0升...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
入职阿里5年,他如何破解“技术债”?
简介: 作者 | 都铎 作为一名技术人,你常常会听到这样的话: “先快速上线” “没时间改” “再缓一缓吧” “以后再解决” “先用临时方案处理” …… 当你埋下的坑越来越多,不知道哪天哪位同学就会踩上一颗雷。特别赞同“人最大的恐惧就是未知,当技术债可说不可见的时候,才是最让人不想解决的时候。” 作为一个程序员,我们反对复制粘贴,但是我们经常会见到相似的代码,相同的二方包,甚至整个代码...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
深度学习入门笔记(十八):卷积神经网络(一)
欢迎关注WX公众号:【程序员管小亮】 专栏——深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
你也能看懂的:蒙特卡罗方法
蒙特卡罗方法,也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法 蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或...
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名...
JAVA后端面试《Spring》
Spring1.Spring是什么?有什么好处?2.IOC是什么?有什么好处?具体过程?3.DI是什么?4.IOC和DI的关系?5.bean标签的属性有哪些?6.IOC创建对象有哪几种方式?7.Spring是如何实现IOC的?也就是如何创建对象的? 1.Spring是什么?有什么好处? 概念: SPring是一个支持控制反转(IOC)和面向切面编程(AOP)的容器框架。 好处: 两降低&gt;&...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问