一个struts框架的系统,登陆后地址栏里一直是http://localhost:8080/ABC/User.do,这个是在那里设置的呢?能不能改呀?
如果我想在后面加上jsessionid='session的id号',(如:http://localhost:8080/ABC/User.do;jsessionid='112233')该到那里做修改呀?请大家指点一下,我不明白。谢谢。

解决方案 »

  1.   

    请问LZ是不是这个意思?
    http://localhost:8080/ABC/User.do?jsessionid='112233'如果是上面所说 LZ就这样修改:
    http://localhost:8080/ABC/User.do?jsessionid=${变量值}
      

  2.   

    设置
    struts1:struts-config.xml
    struts2:struts.xml
    如果要加jsessionid='112233',只要在请求的页面的form里面加个空间或者hidden,或者加句request.setParamer("jsessionid","112233")
      

  3.   

    http://localhost:8080/ABC/User.do?jsessionid=session的id号
      

  4.   

    视情况而定 看你分离了struts的xml没有 如果是登陆 就应该是登陆的xml里面!
      

  5.   

    还是没弄明白。http://localhost:8080/ABC/User.do是登陆后进入frame后的地址栏信息。现在是想在这个信息后加一个登陆的sessionID的信息.我不知道在action中怎样加上这个参数。因为用户登陆以后才能获得sessionId,所以验证完用户名与密码后,到return mapping.findForward("success");以前加上这个参数。才有可能在地址栏中显示出来。可就是不知怎么加上去。是不是我的思路错了?
      

  6.   

    你把你那个参数放到 session之中 客服端和服务器想什么时候取不都能去得到吗?
     你为什么要传来传去
      

  7.   

    你在地址栏里加这个参数干什么.....谁说登录后才有这个session的id的啊?你访问浏览器一般情况就创建session了<form action="xxx.do?jsessionid=<%=session.getId()%>">
    </form>
      

  8.   

    两个问题
    第一个,关于URL地址显示不变的问题。
    这与web组件跳转类别有关。web组件之间,甚至不同web程序之间跳转无非分为两种
    1)转发,也就是forward。从组件A转发给组件B。就j2ee来说,这种转发是在HttpServletRequest上下文进行的。简单点说,就是A往request里面存数据,可以在B里面获取。A,B组件可以共享数据。这是最常见,最频繁的跳转。
    在这种跳转模式下,跳转动作是由服务器发起的(比如struts,ActionServlet依据config文件按照配置好的路径进行转发),发起后服务器自动将请求发送至目标组件,整个过程中浏览器根本不知道会发生这种跳转,在它看来,依然是组件A响应了它的需求。所以它的地址栏显示的还是转发前的地址
    注意,forward只能在同一个web程序内部不同web组件之间进行。不能从A应用程序转发到B应用程序2)重定向。也就是redirect.是由服务器给浏览器回送一个URL地址并通知浏览器按照这个地址去请求响应的资源。注意,是浏览器自身发起请求,那么的地址栏将会显示新的地址给用户。
    重定向既可以在同一个web程序内部,也可以在不同程序之间发起。一旦进行了重定向,request范围以内的共享数据将会丢失。也就是说,A,B无法共享request范围内的数据。第二个问题:关于在URL后面显示sessionid的问题。
    sessionid是干什么用的,想必都知道。
    我做过实验,有时候它会显示在URL后面,有时候就不会显示。没有规律可循,研究它也没什么意思。
    倒是唯一值得关注的是,你想获取sessionid其实很容易,不用保存到隐藏域里面进行维护。你可以随后随地去获取这个id: request.getSession.().getId()
    只要你的session没过期。
      

  9.   

    补充一点:对于struts程序来说,所有的请求都是ActionServlet一个来处理转发和重定向的。
    实际上,只要不是redirect,你的地址栏永远都是登陆进来后的那个URL。除非你在本窗口redirect到别的地方去了
      

  10.   

    Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下: 
    1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 
    2、 Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用 “&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。 
    3、 Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。 Post的所有操作对用户来说都是不可见的。 
    4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。 
    5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。 
    6、Get是Form的默认方法。