session 的工作原理以及使用细节和url编码
2014-08-16 15:15
295 查看
/**********************************************模拟页面************************************************************/
package session;
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;
public class SessionDemo1 extends HttpServlet {
//session底层封装了cookie所以,如果,浏览器禁用了cookie那么sessionID就没法带过去了
//解决的办法就是,通过超链接的形式将sessionId带过去,此时超链接的url地址要经过编码
//这样就保证,即使你把浏览器的cookie禁用掉,我也能将sessionId带过去
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//模拟这种场景
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;chatset=UTF-8");
PrintWriter out = response.getWriter();
request.getSession();
//对url进行编码
String url1 = response.encodeURL("/day07/SessionDemo2");
String url2 = response.encodeURL("/day07/SessionDemo3");
out.print("<a href='"+url1+"'>购物</a> ");
out.print("<a href='"+url2+"'>结帐</a>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
/********************************************************购买页面***************************************************************/
package session;
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 SessionDemo2 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;chatset=UTF-8");
HttpSession session = request.getSession();
session.setAttribute("good", "电视机");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
/*******************************************************8结帐页面******************************************************************/
package session;
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 SessionDemo3 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;chatset=UTF-8");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession(false);
String value = (String) session.getAttribute("good");
out.print("您购买的商品是"+value);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
package session;
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;
public class SessionDemo1 extends HttpServlet {
//session底层封装了cookie所以,如果,浏览器禁用了cookie那么sessionID就没法带过去了
//解决的办法就是,通过超链接的形式将sessionId带过去,此时超链接的url地址要经过编码
//这样就保证,即使你把浏览器的cookie禁用掉,我也能将sessionId带过去
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//模拟这种场景
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;chatset=UTF-8");
PrintWriter out = response.getWriter();
request.getSession();
//对url进行编码
String url1 = response.encodeURL("/day07/SessionDemo2");
String url2 = response.encodeURL("/day07/SessionDemo3");
out.print("<a href='"+url1+"'>购物</a> ");
out.print("<a href='"+url2+"'>结帐</a>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
/********************************************************购买页面***************************************************************/
package session;
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 SessionDemo2 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;chatset=UTF-8");
HttpSession session = request.getSession();
session.setAttribute("good", "电视机");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
/*******************************************************8结帐页面******************************************************************/
package session;
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 SessionDemo3 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;chatset=UTF-8");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession(false);
String value = (String) session.getAttribute("good");
out.print("您购买的商品是"+value);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
相关文章推荐
- application 和 session区别以及使用application存储在线用户的session信息
- 使用Hibernate的session执行任意SQL语句以及整个事务
- Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程
- Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
- Session ,ViewState,以及接收其它网页传过来的值的使用.
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
- Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程
- Mifare 1k卡技术细节以及工作原理
- PHP session使用 memcached的注意几个细节
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
- Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
- (10) 使用Spring的注解方式实现AOP入门 以及 细节
- 使用querystring,session变量以及server.Transfer方法来实现页面间的值传递
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
- Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节