1、两个jsp页面之间怎么传值,对于这个问题,我们先可以想一下,如果要进行jsp之间的传值,那么我们是否可以先通过ajax提交或者href传值到后台,然后通过后台传值到新的jsp页面呢。
这里定义一下,从index.jsp页面传送到test.jsp。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="js/jquery-1.8.3.js"></script>
<body>
<input type="button" value="test" onclick="test()"><!--点击按钮出发提交事件-->
<script>
function test(){
$.post(url, data, function(res) {
//回调函数
}, "json");//这里用的是post提交,如果不懂可以参考JQuery中ajax提交
}
</script>
</body>
</html>
接下来是后台:
public class testServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data = request.getParameter("这里获取的是传送的键名,前台用的是json格式");
request.setAttribute("data", data);
request.getRequestDispatcher("test.jsp").forward(request, response);//这里是转发重定向,可以转发到我们要传值的test.jsp页面
}
}
再然后是test.jsp页面的接收:
<!--多余的代码,这里省略-->
<body>
<%data data = (String)request.getAttribute("data"); %><!--这里注意一下,使用的是获取值的函数,由于传过来的是Object对象,所以需要强制转化一下。-->
<%=data%><!--这里可以输出-->
<!--或者我们可以直接使用EL表达式-->
所传值为:${data}
<body>
以上是传送到后台所进行的一些传送,那么我们也可以直接在两个jsp之间传送:
<!--index.jsp-->
<!--部分代码省略-->
<body>
<a href="test.jsp?value=test">测试</a>
</body>
test.jsp的代码为
<!--部分省略-->
<body>
<%=request.getParameter("test");%><!--我们可以在这里直接进行接收-->
</body>