自动登录功能:我的想法是在登录的时候加入cookies,之后返回主页,然后在主页添加一个Fliter,如果截取到cookies就拿户名密码提交到登录的Action,可才发现,这样会死循环,当有cookies时跳Action,Action跳主页,主页进入filter继续Action。。
解决方案 »
- Weblogic的ClientAbortException被Struts2拦截器捕获,如此无法,下载文件
- 我草!我草!我草!这是神马东东?????这里只是部分,想要全部的M我,邮箱[email protected]
- 如何把一个.exe文件运行时的主窗口放在在网页中中作为一个控件?
- hibernate 使用DetachedCriteria 的Order.desc()排序时
- 关于tomcat服务器 文件列表问题
- jstl类型问题。 在线等 急急急
- 怎样用jdbc对多表同时进行插入记录操作?
- 请问通过java怎么样能画出方块图,直线图(可带箭头),虚线图(可带箭头)的图啊?
- ext 上传进度条,怎么实现?
- 请问谁查询邮编的原代码或者数据库文件啊?谢谢拉
- 如何让.exe程序在frameset中特定区域内显示运行??不是打开链接后独立运行。
- 关于wicket的一点问题,高手进来
主页获取cookie的jsp应该是这样
<%
此处通过cookie获取用户名和密码
String username=...
String userpassword=...
%>
<%
if(有用户名和密码){
%>
<form action="***" name="form1" method="post">
<input type="hidden" name="username" value="<%=username%>" />
<input type="hidden" name="userpassword" value="<%=userpassword%>" />
</form>
<srcipt type="text/javascript">
document.form1.submit();
</script><%
}else{
%>
此处是正常登录页面的代码
<%}%>
filter
public class LoginFilter implements Filter { public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest hrequest = (HttpServletRequest) request;
HttpServletResponse hresponse = (HttpServletResponse) response;
Cookie[] cookies = hrequest.getCookies();
System.out.println("cook");
String[] cooks = null;
String username = null;
String password = null;
if (cookies != null) {
for (Cookie coo : cookies) {
String aa = coo.getValue();
cooks = aa.split("==");
if (cooks.length == 2) {
username = cooks[0];
password = cooks[1];
System.out.print("o"+username+"oo"+password);
Select s=new Select();
Users newUser=null;
Users user=new Users();
user.setName(username);
user.setPassword(password);
newUser=s.user_Login(user);
if(newUser!=null){
HttpSession session=hrequest.getSession();
System.out.println("有cook1");
session.setAttribute("user", newUser);
chain.doFilter(hrequest, response);
}
else{
System.out.println("nocook1");
chain.doFilter(hrequest, response);
}
}
else{
System.out.println("nocook2");
chain.doFilter(hrequest, response);
}
}
}
else{
System.out.println("nocook");
RequestDispatcher re = null;
re = hrequest.getRequestDispatcher("/");
re.forward(request, response);
}
} public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub }}
o1oo1有cook1
nocook2
2011-10-9 11:27:16 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:713)
at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:325)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.zhku.filter.LoginFilter.doFilter(LoginFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)
为什么输出了“有cook1”还会去执行“nocook2”
比如tomcat
它会把session写到磁盘上!
而且session有作用域,还有超时的时间,都可以设置的~
怎么能说浏览器关闭就没有了呢?
这位哥们说的的确没错 session的底层实现就是cookie
所以session的时间是可以设置的
但是服务器最长支持的session是30分钟 所以LZ所用到的自动登录与session真的没有关系只能用cookie 那些说session的是没有明白lz的真正意义把~~