第一种、通过session存取值
Session会话域,Session在用户访问第一次访问服务器时创建,服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。另可调用Session的invalidate方法使其失效。
jsp部分:
<span style="font-family:SimSun;"><%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SessionTest</title>
</head>
<body>
<form action="SessionTest" type="get">
<input type="submit" value="提交"></form>
<h2><%=session.getAttribute("username")%></h2>
</body>
</html></span>
java部分:
package com.cool.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class SessionServ
*/
@WebServlet("/SessionServ")
public class SessionServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SessionServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession();
session.setAttribute("username","吴彦祖");
//重定向回到先前页面
request.getRequestDispatcher("SessionTest.jsp").forward(request, response);
}
}
第二种、ajax存取单个数据
jsp部分:
<%@page import="java.util.*" language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script>
window.οnlοad=function(){
var btn=document.getElementById("btn");
btn.οnclick=function(){
var show=document.getElementById("show");
//readyState==0 未初始化
var httpxml = new XMLHttpRequest();
//readyState==3 正在接受
//readyState==4 接受完毕
httpxml.onreadystatechange = function() {
//alert(httpxml.readyState)
if (httpxml.readyState == 4 && httpxml.status == 200) {
var getStr = httpxml.responseText;//获得后台数据
show.innerHTML=getStr;
}
}
//readyState==1 已打开,为send()做准备
httpxml.open("post","ajaxtest",true);
//readyState==2 已发送
httpxml.send();
}
}
</script>
</head>
<body>
<h2>ajax数据交互demo</h2>
<input type="button" id="btn"/>
<div id="show"></div>
</body>
</html>
java部分:
package com.cool.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.opensymphony.xwork2.ActionContext;
/**
* Servlet implementation class TestServlet
*/
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
out.print("ajax交互成功!");
}
}
第三种、json存取多个对象或数据
jsp部分:
<%@page import="java.util.*" language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script>
window.οnlοad=function(){
var btn=document.getElementById("btn");
btn.οnclick=function(){
var show=document.getElementById("show");
//readyState==0 未初始化
var httpxml = new XMLHttpRequest();
//readyState==3 正在接受
//readyState==4 接受完毕
httpxml.onreadystatechange = function() {
//alert(httpxml.readyState)
if (httpxml.readyState == 4 && httpxml.status == 200) {
var getStr = httpxml.responseText;
var o=JSON.parse(getStr);
var str="";
for(var i=0;i<o.length;i++){
str+="名字:"+o[i].name+";性别:"+o[i].sex+";年龄:"+o[i].age+"</br>";
}
show.innerHTML=str;
}
}
//readyState==1 已打开,为send()做准备
httpxml.open("post","JsonTest",true);
//readyState==2 已发送
httpxml.send();
}
}
</script>
</head>
<body>
<h2>json数据交互demo</h2>
<input type="button" id="btn"/>
<div id="show"></div>
</body>
</html>
java部分:
package com.cool.servlet;
import java.awt.List;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.cool.bean.Student;
import net.sf.json.JSONArray;
/**
* Servlet implementation class JsonServlet
*/
@WebServlet("/JsonServlet")
public class JsonServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public JsonServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ArrayList<Student> list=new ArrayList<Student>();
for(int i=0;i<3;i++){
Student stu=new Student();
stu.setName("Tom");
stu.setSex("男");
stu.setAge(i+10);
list.add(stu);
}
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
out.print(JSONArray.fromObject(list));
out.flush();
out.close();
}
}
第四种、html赋值
总所周知,input有个属性是hidden,它可以使input隐藏但不占用空间。因此,我们可以把想要传递到后台的数据储存到value,让后台通过标识获得这个数据。
jsp部分:
<input type="hidden" name="stu_name" value="我是数据">
java部分:
String stu_name=request.getParameter("stu_name")
如果还有其他数据交互的方法,欢迎补充;若文中尚有不妥之处,希望可以得到您的纠正。