单点登录多次重定向问题

需求:单点登录cas认证登录拦截到主系统的登录页面,而不是cas服务端的登录页面
问题:出现多次重定向问题

2个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
iPhone开发中网络请求重定向多次后,重定向方法无效
在做登陆功能的时候,发送了post请求网址是url,登陆成功后,会返回个新的newurl,在对newurl请求就ok,但是 登陆成功了几次后(正确的用户和密码),在登陆就不能触发请求了,其他的请求也不能触发,这是为什么??不仅仅是登陆这块的重定向请求,其他功能也有重定向请求,只要请求重定向了,累加3次 其他的网络请求就不能被触发,求解!!!急求
puppeteer对于重定向后的页面该如何处理
puppeteer在对于多次重定向后的页面进行事件操作时,比如点击登录botton会跳转到空白页,在goto的时候还是会因为没有获取到token而未登录 除了提前写入cookie和直接使用已有的用户date还有什么方法呢?请教一下前端大佬们
ssm+cas+shiro+maven重定向问题,报错Caused by: java.io.FileNotFoundException
ssm+cas+shiro+maven多次重定向问题,报错Caused by: java.io.FileNotFoundException,追踪源码发现是conn.getInputStream()执行时报的错, this.getResponseCode()=410,410代表删除了文件.。怎么解决 重定向问题,加“/”不能解决该问题啊。loginUrl设置为http://127.0.0.1:9000/cas-shiro-ehcache2/login?service=http://127.0.0.1:9001/cas_shiro_redis_ssm/weblogin/,/weblogin=casFilter,加个“/”,只是跳过了casFilter,然后http://http://127.0.0.1:9001/cas_shiro_redis_ssm/weblogin?ticket=ST-21-rY7ndd2byXqAQ3fXdphO-cas01.example.org没有对应的页面肯定要调到错误页面的。问题我也遇到了解决不了,我的报错:Caused by: java.io.FileNotFoundException: http://127.0.0.1:9000/cas-shiro-ehcache2/login/serviceValidate?ticket=ST-45-2ucmZxknZmSIncboScar-cas01.example.org&service=http%3A%2F%2F127.0.0.1%3A9001%2Fcas_shiro_redis_ssm%2Fweblogin%2F ,我追踪源码查到in = new BufferedReader(new InputStreamReader(conn.getInputStream())); conn.getInputStream()执行时报的错,意思是从cas服务器查找不到生成的 ticket文件: http://127.0.0.1:9000/cas-shiro-ehcache2/login/serviceValidate?ticket=ST-45-2ucmZxknZmSIncboScar-cas01.example.org&service=http%3A%2F%2F127.0.0.1%3A9001%2Fcas_shiro_redis_ssm%2Fweblogin%2F,请求代码应该是var33 = this.getResponseCode()=410,410代表删除了文件。可是我下载的别人的源码和别人的cas服务器没问题,cas服务器我也和别人的调换试过,还是不行,说明我的代码写的有问题,不知道咋改,怎样才能不出现410.我下载的别人的demo运行正常。奇怪
求解:struts配置action跳转为重定向时的传参问题
公司目前进行二次开发,由于一期项目使用的是某些工具进行的快速开发,因此项目中存在很多问题。其一就是struts的配置如果是转发的话,跳转后页面的CSS全部失效。无奈之下只能在配置文件将转发设为重定向,并广泛的使用session。而二期时间也很紧,没办法对系统重写,只能进行改造,而清session也就提上了议程。现在的问题是既然转发不能用,session也不可以,那还有什么选择?能不能让struts的重定向也可以带上参数?或者舍弃struts的重定向而使用sendredirect拼地址进行地址传值?
http用GET方法获取重定向网址源码
类似天猫商品的网址以GET方法获取的是301。 (1)断开程序,截取其中的Location继续GET仍然是301,多次运行,多次截取上一次返回的Location最终会返回200 OK (2)若采用自动截取,循环方法GET无法得到200 OK。 采用截取上次返回的location获取重定向后的网址思路对吗?为什么采用循环GET无法得到200OK?源码附上,谢谢指点。 ```#include<stdio.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netdb.h> #include<netinet/in.h> #include<stdlib.h> #include<unistd.h> #include<fcntl.h> #include<sys/stat.h> #define RECVBUF 102400 /*思想:Ubuntu 11.04 *GET方法返回http响应消息和html源码; *根据协议,响应消息最后一行为空行标志响应信息结束 *寻找两相邻换行符间字符个数<=2表示找到该标志 *提取响应消息,截取Location */ char *find_linebreak(char *pstart) { char *p = pstart; for(*p; *p != '\n'; p++); return p; } void geturl(char *url) { int sockfd; struct sockaddr_in addr; struct hostent *pURL; char myurl[BUFSIZ]; char *pHost = 0, *pGET = 0; char host[BUFSIZ], GET[BUFSIZ]; char header[BUFSIZ] = ""; char text[RECVBUF]; char text_tmp[RECVBUF]; int i ; int redirect_num; char *linebreak1, *linebreak2; //两换行标志 char *find_redirect, *finded_redirect; do { strcpy(myurl, url); for (pHost = myurl; *pHost != '/' && *pHost != '\0'; ++pHost); if ( (int)(pHost - myurl) == strlen(myurl) ) strcpy(GET, "/"); else strcpy(GET, pHost); *pHost = '\0'; strcpy(host, myurl); if(-1 == (sockfd = socket(AF_INET,SOCK_STREAM,0))) { printf("create socket failed of client!\n"); exit(-1); } pURL = gethostbyname(host); addr.sin_family = AF_INET; addr.sin_addr.s_addr = *((unsigned long*)pURL->h_addr); addr.sin_port = htons(80); strcat(header, "GET "); strcat(header, GET); strcat(header, " HTTP/1.1\r\n"); strcat(header, "HOST: "); strcat(header, host); strcat(header, "\r\nConnection: Close\r\n\r\n"); int cc; if(-1 == (cc = connect(sockfd,(struct sockaddr*)&addr,sizeof(addr)))) { printf("connect failed of client!\n"); exit(1); } //向服务器发送url请求的request int cs; if(-1 == (cs = send(sockfd,header,strlen(header),0))) { printf("向服务器发送请求的request失败!\n"); exit(1); } FILE *fd; fd= fopen("html.txt","w+"); recv(sockfd, text, RECVBUF, 0); memcpy(text_tmp, text, RECVBUF); /***截取http响应消息***/ linebreak2 = find_linebreak(text_tmp); do{ linebreak1 = linebreak2; linebreak2 = find_linebreak( linebreak1+1 ); }while(linebreak2 - linebreak1 > 2); //换行符为"\r\n"? *linebreak2 = '\0'; /***提取重定向Location***/ find_redirect = strstr(text_tmp, "Location:"); if(NULL != find_redirect) { if(find_redirect = strstr(find_redirect,"://")) { find_redirect = find_redirect + 3; finded_redirect = find_linebreak(find_redirect); if ( *(--finded_redirect) == '\r' ) //不确定换行符是"\r\n"? *finded_redirect = '\0'; else *(++finded_redirect) ='\0'; //还是'\n'? url = find_redirect; printf("\n\n***%d\n%s",redirect_num,url);//redirect_num 重定向次数 redirect_num ++; continue; } } while (recv(sockfd, text, RECVBUF, 0) > 0) { fprintf(fd, "%s", text); memset(text, 0, RECVBUF); } fclose(fd); printf("接受完毕。。。。\n"); close(sockfd); break; }while(redirect_num <= 10); //最多重定向次数 } int main() { char url[2560]; printf("http://"); scanf("%s", url); geturl(url); return 0; } ```
c#如何实现58同城的登录功能?
58同城的登录实在是搞不懂了,在网上搜到的都是13年前的,但是现在58的登录有所改变。 58登录时,整理好post数据后请求https://passport.58.com/dounionlogin 返回给我的是一段js,根据js意图去访问 http://my.58.com/?pts=*** 报“尝试自动重定向的次数太多”的错误,修改了请求逻辑,经过几次跳转后跑到了这个页面http://passport.58.com/acc/valid?url=http://passport.58.com/login 没辙了,求大神...
OAUTH2.0授权登陆怎么保持登陆状态
我在做一个微信授权登陆的东西 1先请求一个授权地址;用户同意授权,微信服务器请求回调地址并返回code 2.我通过code去做拿到用户信息; 3 拿到说明登陆成功了; 但是我怎么保持一个登陆的状态呢? 不能每次都去让用户授权啊;肯定不是这样的 然后我想到了 在微信浏览器里面写入登陆的cookie 存入了openid; 然后将access_toke 存入 redis里面 ,然后每次取cookie来验证是否登录; 不知道是不是这样子; 我这样做了之后有一个很奇怪的问题;我写入cookie之后 ,等到取cookie 的时候就娶不到,就是有时候能取到,有时候取不到;我很苦恼,找不到原因; 我在想 cookie一会取得到一会取不到的原因可能是这样吗: 第一次跳转到微信授权页让用户授权,用户同意授权之后,然后微信服务器发一个重定向到我给的 重定向链接并且带上CODE参数;这时候我拿到code,查找用户信息;并且在response里面写入cookie;这个时候的response是微信服务器发起的,并不是我们的项目发起的,所以我这个时候写入的cookie并不存在我浏览器里面??? 我不知道自己理解的对不对,但是我多次请求,每次都把request head打印出来,它的浏览器信息居然不是同一个 ,我现在不知道咋办了 有没有人能帮帮我?
求助!用scrapy爬虫,未全部爬完就停止
用scrapy框架爬取58.com获取一些地产数据,前期不用代理ip,本机ip爬取,页面返回滑块+点击验证码,手动解决验证码后再次爬取成功,且速度快,但很low.于是购买快代理私密IP,伪装user agent后进行爬取(没有禁cookies,因为禁了返回的页面就没有信息,页面重定向404,应该是58的一种反爬手段吧,相当于说即便我用了代理,但是从cookie 也可以判断非人为请求,所以返回验证码的概率很高)由于爬取过程中仍会返回验证码,返回验证码的这条url的数据就获取不完整,导最后爬取的总数据量不全。 解决这个问题的思路就是,返回验证码的这条url重新换个ip请求,外加请求时,随机生成一个cookie这样不容易被反爬,这样做后解决了验证码的问题,但是一旦翻页就会出现404,接下来就解决404问题,测试了实际网页,带上原来的cookie再次请求可以解决404问题,外加如果请求返回验证码的这个代理ip就从代理池里移除,于是这两个问题就解决了,只是对于总的请求次数几乎是翻倍了。 原以为这样解决了问题只是请求翻倍,使用代理数增加,但是实际过程试验多次都一样,发现最后没有全部请求完程序就停止了,这个问题暂时没有思路。 寻求帮助,这是什么原因造成的,求大神帮忙解决这个问题.
关于CAS的一点理解和验证扩展问题
<p>最近对YALE的CAS简单的研究学习了下,有一点理解,但还有不是特别明确的地方。 <br><br>1、每次用户通过浏览器访问CAS client1保护的web1应用时,定向到CAS Server验证登陆,用户机器与CAS Server之间建立会话session,cas server产生ST1并定向用户回cas client1,假设用户通过了CAS server认证(login)和验证(vaildation)操作,完成了对web1的访问。如果用户后重新打开一个浏览器(在前一个TGC未过期的情况下),访问cas client2保护的web2应用,在定向到cas server验证时,用户与cas server之间应该是建立新的session,那么cas server产生的ST2应该和第一次的ST1不同,此时应该必须重新在cas server登录。我的理解应该是对的吧,意思是在单点登录的过程中sessionid是不能变的,所以在集成的portal入口中应该采取div嵌入iframe框架,把多个web应用入口都集成到一个登录页面下,对否? <br><br>2、关于CAS Server验证扩展的问题。我们知道在cas server(validation)验证通过后,cas client能通过session.getAttribute("edu.yale.its.tp.cas.client.filter.user")获得在cas server登录的用户名。如果我现在不想破坏cas client后的web应用的权限控制,我的想法是应该建立一个cas server登录用户与web应用用户之间的账号映射吧。直接在数据库中创建一个表,建立cas server用户与web用户的映射关系,这个验证扩展应该是对casfilter类进行修改吧,还有这个扩展验证从数据库中取得的web应用已有的用户名密码如何传递给web应用,web应用是否需要做修改?各位大虾能否提供点思路,最好能有简单代码的实现,或者你觉得这种扩展验证还有其他更好的办法也希望不吝赐教! <br><br>非常谢谢,希望对cas比较熟悉的daxia解答下。</p><br /><strong>问题补充:</strong><br />可能我说得意思不太清楚。 <br />今天仔细看了下serviceticket的源码,其中有一个属性boolean isFromNewLogin();用于判断ST和TGT是否是同时产生的,如果是同时产生的返回True,意思是如果同时产生,肯定是第一次登录;如果ST和TGT不是同时产生,那么证明之前曾经登录过(不然不可能有老的TGT),那么就不用在登陆了。 <br /> <br />我提的第一个问题是因为我在一篇文章中看到如果访问Web1的时候重定向到CAS Server并实现访问后,在同一个浏览器地址栏中输入Web2地址不需要重新登录,但如果重开一个新浏览器输入Web2地址,会需要重新到CAS server登录。因此我的理解就是session不能变化,这里我不太明白客户端TGT cookie的作用,难道重新开一个浏览器的时候不会携带上这个TGT cookie吗?因为基于session不能变化的考虑,我的意思是是不是应该做一个统一的登录portal,把各web应用的链接集中到portal中,我说错了,是用frameset。 <br />对于TGT的功能不是特别清楚,但是看源码介绍是相当重要,我的理解似乎是在实现SSO,即第一次登录后的后续访问,如访问web2,web3,....webN时都需要TGT来配合识别是否已经曾经登录过,不知道理解是否正确。还请指教。 <br /> <br />第二个问题要做映射是因为现有系统都已经有很多自己的注册用户了,不想破坏原来的用户权限。 <br />
微博授权功能用code换取access_token问题
最近在做微博授权的功能,我拿到了第一次的code,但是第二次去换access_token出错显示{"error":"HTTP METHOD is not suported for this request!","error_code":10021,"request":"/oauth2/access_token"},查资料知道是提交必须是post请求。 https://api.weibo.com/oauth2/access_token?client_id=101393&client_secret=a2d375c81a&grant_type=authorization_code&redirect_uri=http://127.0.0.1:8080/scrm/api/weibo/bindGetAccessToken&code=1101a1c76b3;这是我第二次的地址,我怎么能在后台通过post方式发送请求呢,急求,问了很多同事,也没想出办法。 转发的话这个地址会加上原有地址,重定向又需要传参数还得是post,查资料试过httpclient,redirectview都没用!!
CInternetSession有官方给的比较大型的example吗?这个bug实在是太多了啊
如题 我就写一个爬虫而已,过一会程序莫名其妙就unexpected handle 调试也找不到原因,我都快崩溃了 代码如下: ``` CStringA Temp; CInternetSession Session(_T("Microsoft Internet Browser"), 1UL, INTERNET_OPEN_TYPE_PROXY, pstrProxyName, NULL, INTERNET_FLAG_RELOAD | INTERNET_FLAG_DONT_CACHE); //不设置名字会调用 AfxGetAppName() // Session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 5000); // 连接超时 Session.SetOption(INTERNET_OPTION_SEND_TIMEOUT, 5000); // 发送超时 Session.SetOption(INTERNET_OPTION_RECEIVE_TIMEOUT, 5000); // 接收超时 Session.SetOption(INTERNET_OPTION_CONNECT_RETRIES, 1); // 1次重试 // CHttpConnection *pHttpConnect = NULL; CHttpFile *pHttpFile = NULL; // CStringA RecvBufferA; int nBufferLen = 2048; // DWORD dwStatus = 0; LPCTSTR pszAcceptType[] = { _T("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"), NULL }; // try { pHttpConnect = Session.GetHttpConnection(pstrServer); pHttpFile = pHttpConnect->OpenRequest(CHttpConnection::HTTP_VERB_GET , pstrObjectName //访问页面 , _T("") //来源 , 1UL , pszAcceptType , _T("HTTP/1.1") , INTERNET_FLAG_RELOAD | INTERNET_FLAG_DONT_CACHE);// INTERNET_FLAG_NO_AUTO_REDIRECT不自动重定向 if (pHttpFile) { pHttpFile->SendRequest();// 第二个参数为POST数据 pHttpFile->QueryInfoStatusCode(dwStatus); pHttpFile->Read(RecvBufferA.GetBuffer(nBufferLen), nBufferLen - 1); RecvBufferA.ReleaseBuffer(); } } catch (CInternetException* pEx) { TCHAR sz[1024]; pEx->GetErrorMessage(sz, 1024); _tprintf_s(_T("ERROR! %s\n"), sz); pEx->Delete(); Sleep(5000); } // if the connection is open, close it if (NULL != pHttpConnect) { pHttpConnect->Close(); delete pHttpConnect; } if (NULL != pHttpFile) { pHttpFile->Close(); delete pHttpFile; } Session.Close(); ```
有关http状态码的疑问
http 中有几个方法。例如 还有GET、OPTIONS、HAED、POST、PUT、DELETE、TRACE、CONNECT等方法 我们最常用的是GET,POST,PUT 我想问的是其他几个方法什么用呢? [b]今天为了定位程序,通过wireshark抓包,第一次发现了delete 方法 感觉上 delete 方法是删除服务器上的一个 文档(我这边场景是这样的) 不知这个delete 还能delete别的什么东东[/b] 另外还有状态码 文档上写 “ 它分四个过程,在HTTP协议中,服务端是指提供HTTP服务的部分,客户端是指你使用的浏览器或者下载工具等等。在通讯时,由客户端发出请求连接,服务端建立连接;然后,客户端发出HTTP请求(Request),服务端返回响应信息(Respond),由此完成一个HTTP操作。 HTTP协议状态码表示的意思   1××  保留   2××  表示请求成功地接收   3××  为完成请求客户需进一步细化请求   4××  客户错误   5××  服务器错误 1xx-信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。 100-继续。 101-切换协议。 2xx-成功 这类状态代码表明服务器成功地接受了客户端请求。 200-确定。客户端请求已成功。 201-已创建。 202-已接受。 203-非权威性信息。 204-无内容。 205-重置内容。 206-部分内容。 3xx-重定向 客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。 301-对象已永久移走,即永久重定向。 302-对象已临时移动。 304-未修改。 307-临时重定向。 4xx-客户端错误 发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。400-错误的请求。 401-访问被拒绝。IIS定义了许多不同的401错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在IIS日志中显示: 401.1-登录失败。 ” [b]我这里主要问下201这个状态吗? 已创建,创建什么呢?[/b]
请教:Filter 中进行sendRedirect页面跳转 URL方式传递参数 怎么取不到啊! 似
<p>  </p> <pre name="code" class="java"> public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest)request; HttpServletResponse httpResponse = (HttpServletResponse)response; String uri = httpRequest.getRequestURI(); HttpSession session = ((HttpServletRequest)httpRequest).getSession(); EmployeeData user = (EmployeeData)session.getAttribute("user"); if(user == null) { session.setAttribute("key") = "value"; ((HttpServletResponse)response).sendRedirect("/login.jsp?key=value"); } filterChain.doFilter(request, response); }</pre> <p>     </p> <p><span style="white-space: pre;">login.jsp :</span></p> <p> </p> <pre name="code" class="java"> &lt;% String Parametermessger = (String)request.getParameter("key"); System.out.println("Parameter: "+Parametermessger); String Sessionmessger = (String)request.getSession().getAttribute("key"); System.out.println("Session: "+Sessionmessger); %&gt;</pre> <p> </p> <p>   结果:</p> <p>           NULL</p> <p>           NULL</p> <p>   </p> <p>   ????????????????????????????????何解</p> <p> </p> <p> </p> <p> </p><br /><strong>问题补充:</strong><br />这个地方笔误<img src="/images/smiles/icon_mad.gif" /> <br />session.setAttribute("key") = "value";  <br />纠正为 <br />session.setAttribute("key","value");  <br /> <br /><br /><strong>问题补充:</strong><br />这个问题也许我没能描述的很明白,很抱歉!应用是这样的: <br />登陆Frame框架请求多个页面,导致doFilter过程执行多次,也就是执行了多次的sendRedirect("/login.jsp?key=value")过程,从login.jsp中打印信息来看,URL的参数前几次打印出参数是value,对的,但在最后一次变成了NULL,为什么??? 地址显示为:.../login.jsp,为什么啊???? 是否与Filter有关??? <br /> <br />sendRedirect是重定向,作用域已经发生了改变, <br />re:但URL参数应该是在的吧??? <br /> <br />RequestDispatcher rd = request.getRequestDispatcher(); <br />re:这个我当时试过,并不能将页面从系统框架页面返回到login.jsp页面,不能满足业务需求 <br /> <br /> <br /> <br />
讨论一下,延迟持久化--这种需求能否实现?
web应用中,第一个请求时不保存到数据库,而保存为一个句柄传递并forword或redirect到另一个表单,第二个表单提交并处理时,调用这个句柄保存到数据库。能不能想出办法实现这种需求呢? <br /> <br />详细说一下这种需求的应用场景:一个组件化的web系统,由容器(控制器并提供其它一些服务)和许多组件组成,其中一个操作是:用户填写容器的一个表单,提交后容器根据某域的值 forward到某个组件的一个表单(但不保存到数据库),用户填写组件表单后提交,第二个表单及处理均是组件中的代码实现的,组件保存第二个表单到数据库,同时需要实现第一个表单数据保存到容器数据库。 <br /> <br />组件开发者不应了解容器的细节,因此不能把第一个表单保存在第二个表单的隐藏域中提交后处理,组件开发者甚至不需要了解容器需要的数据库表结构,甚至容器和组件可能属于两个不同的库! 到第二个表单也可能是redirect过去,第二个表单也不会得到前一表单的request对象,但可以得到句柄的ID,将附在redirct请求后传递。 <br /> <br />我想这种需求很普遍也很有意义,也不一定是保存数据库了,也可以是延迟做其它的处理工作,但我没有想出实现的办法来,各位高手有没有主意?<br/><strong>问题补充</strong><br/>魔力猫咪:不了解seam,请问其实现这种需求的原理是什么?<br />kjj:“句柄”只是为了理解的方便,我意思是第一次请求时为操作建立了所有的准备但不立即执行,第二个请求时只调用一下就可以执行了,而且,第二个请求的处理者不需要了解那个操作的细节。<br />魔力猫咪和miroku都提到了session,但这种方式必须让第二个请求的处理者了解存放在session中的数据结构和需处理的细节,由第二个请求的开发者来做实现,但我希望能完全解耦,第二个请求的处理者只需调用,不需要了解细节。也只有这样才能使容器和运行于其中的组件能够分开。<br /><br />这种需求能实现吗?<br /><br /><strong>问题补充:</strong><br />非常感谢大家的意见,高手真多啊! <br /> <br />我想用session可以,就是创建一个类的对象实例,把第一个表单的数据设置为该对象的属性,这个类有一个方法会执行保存数据库,把这个对象放在session中,第二个表单保存时取出调用保存方法就行了。是这样吧? <br /> <br />pocketduck :保存完成后从session中删除这个对象,即使不删除也没关系吧,怎么会出现内存泄漏呢?有必要另外做缓存吗? <br /> <br />sjynt131:查了一下享元类,没看明白它怎么解决我的问题呢? <br /> <br />kjj:谢谢!又了解了RIFE框架,还真是,它与我正在做的东西很相似呢。 <br /><br /><strong>问题补充:</strong><br />sjynt131兄给的单态例子似乎不是典型的享元,享元是支持大量细粒度对象,感觉这里没有这个需求,而且对于延迟操作没有什么关系。 <br />延迟操作看来还是要靠session,可以在第一个表单的处理类中加一个execute方法,取第一个表单的值为该类的属性赋值,但不执行execute方法,即准备好数据但不立即持久化,然后把这个对象放在session中然后重定向,而第二个表单的处理中取出这个对象并执行execute方法就可以了。第二个表单的处理者不需要了解细节,只需从session中取出指定对象并执行,然后从session中清除。<br /><strong>问题补充:</strong><br />谢谢sjynt131兄,明白了,的确可以作为共享对象来存取。但我觉得还是用session好一点,为什么要和session解耦呢? <br />设计session这种基于会话生命周期的对象恐怕也是为了解决这类问题吧,session会自动消失掉,而这个共享类需要手工维护,而且不容易避免key的重名在很多人用的情况下。
130 个相见恨晚的超实用网站,一次性分享出来
相见恨晚的超实用网站 持续更新中。。。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱 极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件, 选择安装到U盘(按照操作无需更改) 三、重启进入pe系统 1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12) 选择需要启...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Java描述设计模式(19):模板方法模式
本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景 通常一款互联网应用的开发流程如下:业务需求,规划产品,程序开发,测试交付。现在基于模板方法模式进行该过程描述。 public class C01_InScene { public static void main(String[] args) { DevelopApp developApp = n...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
第三个java程序(表白小卡片)
前言: &nbsp;向女神表白啦,作为一个程序员,当然也有爱情啦。只不过,虽然前面两个程序都只是学习了基础的语法结构和向量哈希表。这里涉及的是Swing,awt图形用户界面和一点文件输入输出流的知识。 &nbsp; 表白代码如下: 另附:里面的音乐和图片可以放在一个自己创建的包里面,也可以放在src里面,或者使用绝对路径。至于布局,我自己的使用的是简单的排班,简单的继承。后面的程序会慢慢实现。 ...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
化繁为简 - 腾讯计费高一致TDXA的实践之路
导语:腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,在如此庞大的业务体量下,腾讯计费要支撑业务的快速增长,同时还要保证每笔交易不错账。采用最终一致性或离线补...
Linux网络服务-----实验---PXE和Kickstart的无人值守装机
目录 一.PXE的原理 二.kickstart的原理 三.PXE与kickstart的结合使用自动装机 一.PXE的原理 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由支持通过网络启动操作系统,再启动过程中,终端要求服务器分配IP地址...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
A*搜索算法概述
编者按:本文作者奇舞团前端开发工程师魏川凯。A*搜索算法(A-star search algorithm)是一种常见且应用广泛的图搜索和寻径算法。A*搜索算法是通过使用启...
程序员写了一个新手都写不出的低级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岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
从顶级黑客到上市公司老板
一看标题,很多老读者就知道我在写什么了。今天Ucloud成功上市,季昕华成为我所熟悉的朋友里又双叒叕一个成功上市的案例。我们认识大概是十五年多吧,如果没记错,第一次见面应该是2004年,...
蓝桥杯知识点汇总:基础知识和常用算法
文章目录基础语法部分:算法竞赛常用API:算法部分数据结构部分 此系列包含蓝桥杯绝大部分所考察的知识点,以及真题题解~ 基础语法部分: 备战蓝桥杯java(一):一般输入输出 和 快速输入输(BufferedReader&amp;BufferedWrite) 备战蓝桥杯java(二):java编程规范和常用数据类型 备战蓝桥杯java(三):常用功能符以及循环结构和分支结构 备战蓝桥杯java(四...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
强烈推荐10本程序员在家读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 意思是密码。 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mkdir:Make directory ...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
疫情数据接口api
返回json示例 { "errcode":0,//0标识接口正常 "data":{ "date":"2020-01-30 07:47:23",//实时更新时间 "diagnosed":7736,//确诊人数 "suspect":12167,//疑是病例人数 "death":170,//死亡人数 "cur...
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药...
疫情防控,开发者集结出战!
作者 | 屠敏出品 | CSDN(ID:CSDNnews)2020 年伊始,病毒肆虐,人心惶惶。截止北京时间 1 月 31 日 15 时 30 分,全国确诊新型冠状病毒肺炎的数字已达到了...
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
对Tomcat的简单概要小结
首先我们必须得知道Tomcat就是一个服务,一个本地服务,我们可以控制启动和停止,我们程序员通过这个服务主要是用来存放我们的java程序,当我们把Java程序放进Tomcat服务中,一旦Tomcat服务启动起来,其他电脑就可以进行网络连通,也就是说其他电脑也可以共同访问这个Java程序。 Tomcat的主要目录的概念 有上面的概念之后,我们再来知道一下tomcat根目录下都有哪些文件,以及这些文...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问