ssh学习之旅(1)--jQuery获取session的值

因为要解决获取存取验证码的session,因此为了session查了百度。。

获取session的值方法有暂时发现又两种

一种是jquery的post方法 :因为本人没学过jQuery,所以不怎么会用 ,,哈哈哈哈,等会用了再更新。。。


下面这种就是我获取session的第二种方法


原理是这样的 用了和 <input type = "hide" id = <%=session.get("code")%>>  存在的隐藏文本框的session,

jsp代码

验证码:<input type="text" id="idAgainCode"
			value="<%=session.getValue("code")%>" />

script代码

	$("#idImgVcode").blur(function() {
			$("#idAgainCode").val;
			alert(v);
		});


================================================

但是我发现了一个很重要的问题 但我更新图片的时候 input的值是不会变的 ,验证码的 看不清的时候,那就没法这样获取验证码了。

后来 解决方案是这样的,。。。。

发现网上可以直接获取session

$("#idImgVcode").blur(function() {
			$("#idAgainCode").val;
			
			alert("<%=session.getAttribute("code") %>");
		});


于是就更改成这样了

看起来获取的session的code 验证码好像是对的了 ,

仔细看看 发现验证码与弹出的框是不同的啊。。。。。。

想想原因。。是获取的session在页面上的怎么不同步呢,,好像是有一个这样的机制session在浏览器会保存几分钟,所以页面没刷新,session一直都是不变的,,,

看来这种办法对于获取验证码是行不通的啊。只能好好用post方法了。。。明天再看看的 ,,,这个就记录下来,以后少走些弯路


验证码源码附上

jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>后台管理页面</title>
<link rel="stylesheet" type="text/css" href="css/styles.css">
<script type="text/javascript" src="javascript/Login_javascript.js"
	charset="gb2312"></script>
<script type="text/javascript" src="jquery-2.1.1.js"></script>
<script type="text/javascript">
/* 	function refreshcode() {
		document.getElementById("idImg").src = "imagecode.action?dt="
				+ Math.random();
	} */

	$(document).ready(function() {
		var flag = {
			"identify" : false
		};

		/* $("#change").blur(function() {
			$.post("checkcode.action", {
				"code" : code
			}, function(data) {
				alert("验证码正确"+data);
				if (data) {
					alert("验证码正确");s
				} else {
					alert("验证码错误");
				}
			}, "json");
			alert("验证码错误");
			$("#info").html("验证码地址不能为空");
		}); */
		
		$(function(){
  		//单击"看不清楚"按钮切换验证码
  		$("#change").click(function(){
  			//重新指定img的src属性
  			$("#idImg").attr("src","imagecode.action?dt="+ Math.random());
  			
  		 	$("#idAgainCode").val($("#idAgainCode").val()); 
  			return false;//阻止<a>元素的href动作
  		});
  		//单击图片切换验证码
  		});
		
/* 		$("#loginSubmit").submit(function() {
			var ok = flag.identify;
			if (ok == false) {
				alert("表单项正在检测或存在错误");
				return false;
			}
			return true;
		});
		
		$("#loginSubmit").submit(function() {
			var ok = flag.identify;
			if (ok == false) {
				alert("表单项正在检测或存在错误");
				return false;
			}
			return true;
		}); */

		$("#idImgVcode").blur(function() {
			/* $("#idAgainCode").val; */
			
			alert("<%=session.getAttribute("code") %>");
		});
	});
</script>

</head>

<body>
	<div align="center">
		<p>管理员登录</p>
		<s:form action="manageLogin" method="post"
			οnsubmit="return user_input()" namespace="/">
			登录:<input type="text" name="manager.managerName" id="name" />
			<br />
			密码:<input type="password" name="manager.managerPassword"
				id="password" />
			<br />
			验证码:<input type="text" name="imgVcode" id="idImgVcode" />
			<span id="info" style="color:red"></span>
			<br />
			<img id="idImg" src="imagecode.action" />
			<a id="change" href="#" href="#">看不清楚?换个图片</a>
			<s:submit value="登录" align="center" id="loginSubmit"></s:submit>

		</s:form>
		<br /> <%-- 验证码:<input type="text" id="idAgainCode"
			value="<%=session.getValue("code")%>" /> --%>
	</div>
</body>

</html>


action


package com.jing.action;

import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.util.Map;

import org.hibernate.Session;

import com.jing.util.ImageUtil;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class ImageAction extends ActionSupport{
	//该属性由stream组件负责输出
	private InputStream imageStream;
	
	

	public String execute(){
		//生成一个验证码图片
		Map<String,BufferedImage> map = 
					ImageUtil.createImage();
		//获取图片字符
		String code = map.keySet().iterator().next();
		ActionContext ac = ActionContext.getContext();
		ac.getSession().put("code", code);//保存图片字符,为以后校验使用
		System.out.println("code :"+code);
		BufferedImage image = map.get(code);//获取图片对象
		//将图片给imageStream属性
		try {
			imageStream = ImageUtil.change(image);
			return "success";//调用stream类型的result响应
		} catch (Exception e) {
			e.printStackTrace();
			return "error";
		}
	}

	public InputStream getImageStream() {
		return imageStream;
	}

	public void setImageStream(InputStream imageStream) {
		this.imageStream = imageStream;
	}
	
}


struts配置

<action name="imagecode" class="Imagecode">
			<result name="success" type="stream">
				<param name="inputName">imageStream</param>
			</result>
		</action>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值