客户端禁用cookie情况下的URL重写

客户端禁用cookie情况下的URL重写:

servlet:

package com.stono.servlet.listenerorder;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SessionON extends HttpServlet {
    private static final long serialVersionUID = 1L;
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession session = req.getSession();
        // 如果客户端的cookie禁用,每次获得的session都是新的;在chrome Developer Tools中的Cookies界面可以看到没有request的JSESSIONID;
        // 判断获得的session是否是新的;
        boolean new1 = session.isNew();
        System.out.println("session is " + new1);
        PrintWriter writer = resp.getWriter();
        writer.println("com.stono.servlet.listenerorder.SessionON.doGet(HttpServletRequest, HttpServletResponse)");
        // 使用response.sendRedirect(response.encodeRedirectURL("b.do"))进行URL重写;
        // 在客户端可以看到形如:TestBootWeb/b.do;jsessionid=6047B41B7A2D066E803FBA68C88E40F8的格式的URL;
        // 这样在b.do中其session就可以记住当前的页面a.do的session;
        resp.sendRedirect(resp.encodeRedirectURL("b.do"));
        // 在JSP中使用response.encodeURL("xxx.do");进行编写;
    }
}
时间: 2024-10-12 13:26:04

客户端禁用cookie情况下的URL重写的相关文章

Session,Cookie,jsessionid,Url重写

在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码: < % cookie[]cookies = request.getCookies(); if (cookies.lenght == 0 || cookies == null){ doStuffForNewbie(); //没有访问过 }else{ doStuffForReturnVisitor(); //已经访问过了 } % > 这是很浅显

客户端禁用Cookie后session失效的问题

客户端禁用Cookie后session会失效,该如何解决? 解决方法:使用URL重写技术 URL重写:在原来的URL后面加上";jsessionid=123456789" 即:url--->url;JSESSIONID=123 注意: *For robust session tracking, all URLs emitted by a servlet should be run through this method. Otherwise, URL rewriting cann

.net程序错误:BadImageFormatException....如果在安装32位Oracle客户端组件的情况下以64位模式运行

OracleClient 程序要连oracle数据库,提示如下错误: 数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,将出现此问题. 1.IIS部署时 网上搜索了一下,有各种办法,试过多安装了一个64位的oracle11g客户端,还是不行.后来想到是否是iis的问题,之前配置iis的时候好像碰到过32位64位的一个设置,看了以前的博客之后把应用程序池做了如下设置

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 这样一来,只要客户端下载Instant Client,直接解压,设置Path就ok了.具体设置如下:1.下载32位Oracle InstantClient 2.将Oracle InstantClient解压到某目录 3.打开PL/SQL,在perference里面设置OCI Library和Oracle_home,例子如下:        

webservice 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下运行,将出现此问题

最近做的项目中,应用服务器迁移到另外一台服务器,操作系统升级为win10,配置好IIS里的应用程序发布网站和Webservice网站后, 客户端程序调用Webservice出错: “尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下运行,将出现此问题”. 写了个控制台程序,在本机上运行测试,还是出现这个问题: 最开始以为是oracle客户端的问题,重新安装另外一个版本的客户端,运行程序还是出现这个错误.

IIS发布后出现“如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题”错误

VS2010运行程序没有任何问题,但是发布到IIS以后,连接数据库时报错:“尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题.”,解决方法为: IIS应用程序池---高级设置----启用32位应用程序设为“TRUE”----加载用户配置文件设为“TRUE”

如果在安装32位Oracle客户端组件的情况下以64位模式

1.Oracle客户端32位和64位都可以连接Oracle服务端.所以“如果在安装32位Oracle客户端组件的情况下以64位模式”这个错误,不是Oracle本身的问题. 2.错误原因:应用程序和本机安装的Oracle客户端版本不一致的问题: 即:应用程序:64位   本机安装的Oracle客户端为32位. 解决方法:本机安装Oracle客户端64位. 我的本机是win7-64位,vs2005是32位,但我的工程编译的是:anycpu,因为我本机操作系统是64位,因此anycpu编译出来就是64

Asp.net_解决vs运行报在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题的bug方法

环境:操作系统win10 64位,开发工具vs2015 社区版,服务器数据库oracle 11g 64位,本机客户端oracle client 11g 64位,PLSQL Developer 也是64位版 以上开发环境,PLSQL Developer可以正常连接服务器数据库,然而运行项目代码后报以下错误: “System.InvalidOperationException”类型的异常在 System.Data.OracleClient.dll 中发生,但未在用户代码中进行处理 其他信息: 尝试加

php在客户端禁用cookie时让session不失效的解决方法

cookie固然好,不过有些客户端浏览器会禁用cookie,这就会导致你所依赖cookies的程序会失效或出错,那么若真出现用户关闭cookies的情况,PHP应该如何再次使用session?方法还是有的. 1.设置php.ini的session.use_trans_sid = 1或者打开enable-trans-sid选项,让PHP自动跨页传递session id.2.手动通过URL传值.隐藏表单传递session id.3.用文件.数据库等形式保存session_id,在跨页过程中手动调用.