java与前端交互的方式

第一种、通过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")

如果还有其他数据交互的方法,欢迎补充;若文中尚有不妥之处,希望可以得到您的纠正。



  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值