JSP:网页中实现传递参数的6种方法

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>

结果:

猜你喜欢

转载自blog.csdn.net/qq_42192693/article/details/81384526