易截截图软件、单文件、免安装、纯绿色、仅160KB

jsp和servlet中的session共享

最近做一个商户接口,发现同一应用下jsp与servlet的session对象不能共享;苦想冥想,终于找到一个解决方案。
         案例背景是这样的:
         客户要调用我写的这个接口进行帐户验证,其操作流程如下:
1.        访问 appA(暂定为我的应用名) 中的一个jsp页面authCode.jsp,生成一个验证码给客户,同时生成session_id,现在暂定其值为 session1;
2.        客户填定待验证的帐户信息和验证码;
3.        客户发送请求到appA 下的一个 Servlet 进行帐户验证, 在 Servlet中会对验证码进行判断,如客户传送过来的的验证码错误将直接报错;与之比较的验证码从session中取。
 
但测试的时候发现前后两次请求(取验证码和帐户验证)的session_id不一致;因为以前我做这个接口的时候也是两个请求,不过帐户验证请求是发送到一个.do的URL,这次改动一则是需求变动,另外也想将帐户验证用统一的对外接口来写,便于维护。既然以前没有session_id 不一致的问题,说明同一应用下如果有不同的Servlet,它们各自维护自己的session,并且不能跨Servlet访问其它Servlet下的session;所以在Servlet(接口Servlet) 中不能直接通过 request.getSession得到org.apache.struts.action.ActionServlet这个Servlet 下的session。
 
但最终这些Servlet 是在同一个应用下,所以它们可以在ServletContext下可以共享Object,所以将authCode.jsp中生成的session作为对象放在ServletContext中即可。
authCode.jsp代码片断:
ServletContext context = getServletConfig().getServletContext();
context.setAttribute("gauApp", session);
 
Servlet(接口入口) 代码片断:
ServletContext context =  getServletConfig().getServletContext();
    ServletContext contextGau = context.getContext("/gau");
HttpSession session = (HttpSession)contextGau.getAttribute("gauApp");
 
按以上方法即可实现同一应用下jsp和servlet中的共享session对象。


相关文档:

Tomcat 6 + JDK1.6u2 配置jsp, servlet, bean实践


一、文件下载及版本
apache-tomcat-6.0.20.exe
jdk-6u2-windows-i586-p.exe
二、安装及环境变量设置
软件安装后,需要配置环境变量。新建JAVA_HOME, CATALINA_HOME, classpath,修改path:
classpath = ".;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\lib\servlet-api.jar"
path += ";%JAVA_ ......

JSP无刷新验证码

此实现共分三个文件,即:CreatImage.java 生成图像流的类,提供用于生成图片流的方法;images.jsp 图片包装,用于将图片加入到response输出流中;login.jsp 调用前面的jsp,显示验证码。
CreatImage.java 类:
3 import java.awt.Color;
 4 import java.awt.Font;
 5 import java.awt.Graphics;
 6 im ......

纯JSP分页代码之Mysql

//运行图:
//连接字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName(driverName).newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
//每页显示记录数
int PageSize ......

纯JSP分页代码之sqlserver2005/2008

上一篇分页文章,是用于mysql,稍微修改下,用于Sqlserver2005/2008,没有异常处理。没有考虑性能等。
现将代码贴出,以供初学者参考:
注:邀月使用环境Eclipse 3.4.2+Tomcat 6.18+Sqlserver2005 sp3调试成功。
页面pagelistDemo.jsp内容:
Code
<%@ page language="java" contentType="text/html; ......

JSP下取当前时间并显示的代码,jsp年月日显示时间

一、先看看如何取当前时间并显示的代码:
------------------------------------------------
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date currentTime = new java.util.Date();//得到当前系统时间
String str_date1 = formatter.form ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号