1,通过超链接实现(存在缺陷无法传递中文)表单传递参数和此基本相似
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="show.jsp?name=ss">点击</a> //设置参数和赋值
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
name参数的值为: <%=request.getParameter("name")%>
</body>
</html>
输出:name的参数值: ss
2通过request传递参数
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8"); %>
<%request.setAttribute("name", "李白"); %>
<jsp:forward page="index.jsp"></jsp:forward>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
这个:<%=(String)request.getAttribute("name")%>
</body>
</html>
输出:这个:李白
3通过session传递参数
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8"); %>
<%session.setAttribute("name", "李白"); %>
<jsp:forward page="index.jsp"></jsp:forward> //跳转页面
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
这个是:<%=(String)session.getAttribute("name")%>
</body>
</html>
输出:这个是李白
4通过application传递参数
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8"); %>
<%application.setAttribute("name", "李白"); %>
<jsp:forward page="index.jsp"></jsp:forward>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
这个:<%=(String)application.getAttribute("name")%>
</body>
</html>
输出:这个:李白
前三者的区别
application:
全局作用范围,整个应用程序共享,生命周期为从应用程序启动到停止,在这个过程中application里的变量一直在累加,除非你重启tomcat或是人工删除,否则它会一直变大。
session:
会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期为会话 超时或者服务器端强制使会话失效。简单的说就是从浏览器打开到浏览器关闭这个过程中有效。在此过程中session里的变 量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。
request:
请求作用域,客户端的一次请求。生命周期为一次请求或使用forward方式执行请求转发,也就是使用forward方式跳转多个jsp,在这些页面里你都可以使用这个变量。但是只要刷新页面,这个变量就失效了。
5通过JSTL标签<c:param>传递(前提导入JST的jar)
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GB18030">
<title>Insert title here</title>
</head>
<body>
<c:redirect url="main.jsp"> //负责跳转
<c:param name="user" value="wgh"></c:param> //赋值
</c:redirect>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GB18030">
<title>Insert title here</title>
</head>
<body>
[${param.user}]您好,欢迎访问我公司的网站
</body>
</html>
输出:[wgh]您好,欢迎访问我公司的网站
6,通过Struts2传递
1,将Struts2的支持类型库文件添加到web-inf目录的lib中
2,创建Action对象
import com.opensymphony.xwork2.ActionSupport;
public class GreetingAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String username;
public String execute() throws Exception {
if (username == null || "".equals(username)) {
return ERROR;
} else {
return SUCCESS;
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
3,配置struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="myPackage" extends="struts-default">
<action name="greeting" class="Test.GreetingAction">
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>
4,JSP页面index.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GB18030">
<title>Insert title here</title>
</head>
<body>
<form action="greeting.action" method="post">
请输入你的姓名:<input type="text" name="username">
<input type="submit" value="提交">
</form>
</body>
</html>
5,JSP页面success.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="GB18030">
<title>Insert title here</title>
</head>
<body>
<font color="red">
<s:property value="username"/>
</font>
</body>
</html>
结果: