Session在使用的过程中是需要SessionID来获取的。而这个SessionID是存放在客户端的cookie中。那么假如你的浏览器关闭了cookie功能的话将不能使用Session。解决的办法就是通过URL重写。
URL重写功能其实就是对URL进行一个编码加密,客户端看不到真实的URL。而且它还有一个重要的功能就是每次进行完URL重写之后都会将SessionID放置到URL中。这样每次服务器在获取相应的Session时需要的SessionID可以从URL中找到。而且URL还进行了加密,增强了安全性。
<a href="www.bug.com/admin/info.jsp">Info List</a> 改为:
<a href="<%=response.encodeRedirectURL("www.bug.com/admin/info.jsp")%>">Info List</a>
又如:
URL重写功能其实就是对URL进行一个编码加密,客户端看不到真实的URL。而且它还有一个重要的功能就是每次进行完URL重写之后都会将SessionID放置到URL中。这样每次服务器在获取相应的Session时需要的SessionID可以从URL中找到。而且URL还进行了加密,增强了安全性。
<a href="www.bug.com/admin/info.jsp">Info List</a> 改为:
<a href="<%=response.encodeRedirectURL("www.bug.com/admin/info.jsp")%>">Info List</a>
又如:
Tags: url
我目的是把JSP页面转换成静态的HTML,url.openConnection()中的url是我项目中的JSP文件的路径,由于项目的页面有验证session是否失效,所以当url.openConnection()打开的页面时候session是空的,处理Session:ts.setRequestProperty("Cookie", "JSESSIONID=" + sessionId);request.getSession().getId()
代码如下:
代码如下:
复制内容到剪贴板 程序代码
public void getHtmlReport(String[] urlList,String protocol,String host,String sessionId ){
try
{
if(urlList.length < 1)
{
log.debug("Use: java TestSocket 所要转换的页面的URL [转换后要保存的文件名]");
try
{
if(urlList.length < 1)
{
log.debug("Use: java TestSocket 所要转换的页面的URL [转换后要保存的文件名]");
Tags: HttpURLConnection url
当通过URLConnection第一次和服务器发起POST或是GET请求以后,通过getHeaderField方法获得SessionID,具体方法为:
String session_value=getHeaderField("Set-Cookie");
第二次发起POST或是GET请求的时候需要把刚才获得的SessionID放置在请求的头部然后再提交,这样就能服务器就会认为是同一个Session请求了,具体方法为:
setRequestProperty("Cookie", session_value);
如果取得Set-Cookie的值比较长,取值到分号前即可 如 JSESSIONID=575F7196EDB52825D288F4061C66BC29;
String session_value=getHeaderField("Set-Cookie");
第二次发起POST或是GET请求的时候需要把刚才获得的SessionID放置在请求的头部然后再提交,这样就能服务器就会认为是同一个Session请求了,具体方法为:
setRequestProperty("Cookie", session_value);
如果取得Set-Cookie的值比较长,取值到分号前即可 如 JSESSIONID=575F7196EDB52825D288F4061C66BC29;
构造了一个URL之后,可以使用URL类中的方法访问URL指向的网络资源:
public URLConnection openConnection()
openConnection()方法会尝试连接URL指向的网络资源,然后返回封装了操作连接的类java.net .URLConnection的一个实例。
URLConnection是封装访问远程网络资源一般方法的类,通过它可以建立与远程服务器的连接,检查远程资源的一些属性。其中一些数据操作方法如下:
public void connect();
public URLConnection openConnection()
openConnection()方法会尝试连接URL指向的网络资源,然后返回封装了操作连接的类java.net .URLConnection的一个实例。
URLConnection是封装访问远程网络资源一般方法的类,通过它可以建立与远程服务器的连接,检查远程资源的一些属性。其中一些数据操作方法如下:
public void connect();
Tags: url
推荐java.lang.IllegalStateException:Cannot forward after response has been committed异常出现的原因是因为
这个转发下面的必须要有一个return来返回,是不是必须用null,还没搞清楚
这样写就没的问题了:
复制内容到剪贴板 程序代码
servlet.getServletContext().getRequestDispatcher("/DateUpdatePage.do").forward(request, response);
复制内容到剪贴板 程序代码
return null ;
这样写就没的问题了:
复制内容到剪贴板 程序代码
servlet.getServletContext().getRequestDispatcher("/DateUpdatePage.do").forward(request, response);
return null ;
return null ;