如何在不登录的情况下链接另一个页面

yinrocket 2009-05-12 11:02:33
我现在有两台WEB服务器A、B,打开页面都做了session的验证。现在我想在A服务器上的a.jsp上做一个链接,在不重新登录的情况下打开B服务器上的b.jsp,应该怎样做?请各位帮帮忙!
...全文
129 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinrocket 2009-05-14
  • 打赏
  • 举报
回复
谢谢各位,通过各位的回复,虽然具体实现方法还没有,但大致思路有了。就是把用户名作为参数传过去B服务器后,再由B服务器通过Webservice向A服务器验证一下,如果符合条件就把用户名保存在session中。
robyjeffding 2009-05-13
  • 打赏
  • 举报
回复
把用户名也传过去,
a.jsp
<a href="b.jsp?username=<%=(String)session.getAttribute("username")%>">服务器B</a>
在b.jsp接收参数的时候,就把用户名保存在session中,
b.jsp
if(request.getParameter("username")!=null){
session.setAttribute("username",)request.getParameter("username");
response.sendRedirect("index.jsp");
}
保存之后马上跳转到首页
yinrocket 2009-05-13
  • 打赏
  • 举报
回复
呵呵,谢谢,我试过了还是不行。因为没有登录过B服务器,所以session没有建立起来,在b.jsp中的检测session语句还是会跳转到B的登录界面。因为B服务器本身也有靠session来做验证的,因此b.jsp不能去掉session检测语句,单靠参数来判断。
我的情况有点像单点登录,但由于只是这一个页面要这样做,因此不想做的太复杂,现在最大的问题就是不知道怎样在不登录B服务器的情况下来建立B服务器的session。
kone52 2009-05-13
  • 打赏
  • 举报
回复
通过加密传过去
yinrocket 2009-05-13
  • 打赏
  • 举报
回复
这样的确是可以,但这样一来b.jsp的安全就无法保障的,别人知道("username")就可以打开b.jsp,有什么好的解决方法?
yinrocket 2009-05-13
  • 打赏
  • 举报
回复
这样的确是可以,但这样一来b.jsp的安全就无法保障的,别人知道("username")就可以打开b.jsp,有什么好的解决方法?
yinrocket 2009-05-12
  • 打赏
  • 举报
回复
呵呵,不是。我的意思是A服务器的a.jsp和B服务器上的b.jsp都加了判断session里值是否存在的语句,当取不出来就跳转到登录界面。都加了下面这个语句
<%
if(request.getSession().getAttribute("用户名")==null)
{
response.sendRedirect("login.jsp");
}

%>

我在a.jsp上做一个链接打开b.jsp,但由于我没有登录B服务器,而b.jsp又有上述语句,所以当我点这个链接时,它会自动跳转到B的登录界面。
而我想做的是,当我只有点a.jsp上的链接打开b.jsp时,不用重新登录B服务器,而可以直接打开b.jsp。但上述语句又不能去掉。

  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yinrocket 的回复:]
不是。只是简单地判断session是否存在(是否已登录),就是判断能否取得到登录后的用户名,如果存在就可以打开页面,不存在跳转到登录界面。
[/Quote]
正常session被封装在request里,当你的Web服务起来以后,收到请求就会给用户分配1个session,不需要判断是否存在,楼主的意思是判断session里值是否存在吧
<%
if(request.getSession().getAttribute("用户名")==null)//写在b.jsp上,当没登陆的时候,就会跳转到登陆页
{
response.sendRedirect("login.jsp");//“”里是你登陆页的地址
}

%>
yinrocket 2009-05-12
  • 打赏
  • 举报
回复
不是。只是简单地判断session是否存在(是否已登录),就是判断能否取得到登录后的用户名,如果存在就可以打开页面,不存在跳转到登录界面。
yinrocket 2009-05-12
  • 打赏
  • 举报
回复
不是。只是简单地判断session是否存在(是否已登录),就是判断能否取得到登录后的用户名,如果存在就可以打开页面,不存在跳转到登录界面。
jinchun1234 2009-05-12
  • 打赏
  • 举报
回复
学习中
w382572397 2009-05-12
  • 打赏
  • 举报
回复
你使用的过滤器验证?
  • 打赏
  • 举报
回复
上边需要在a.jsp里做个非空判断
String name="";
if(request.getSession().getAttribute("username")!=null)
{
name = request.getSession().getAttribute("username").toString;
}
  • 打赏
  • 举报
回复
这样的话,2个服务器就会产生2个session了,但是虽然是2个session,规则都是你自己定的,所以还是想怎么玩就怎么玩
通过加参数试试
a.jsp上的
<%
String name=request.getSession().getAttribute("username");//如果登陆会有一个值
%>
<a href="b.jsp?username=<%=name%>"></a>//在超连接上把这个值做为参数挂在给b.jsp发的请求后边

在b.jsp上获取参数
<%
if(request.getParameter("username")==null || request.getParameter("username").equals(""))
{
response.sendRedirect("login.jsp"); //一般应该是出现").equals("")这种情况
}
%>

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧