在JSP中,可以使用以下几种方法实现跳转HTML页面并传递值:
1、使用Request对象传递参数
2、使用Session对象传递参数
3、使用Cookie对象传递参数
4、使用URL重写传递参数
下面分别介绍这四种方法的实现过程。
使用Request对象传递参数
Request对象是一个请求对象,用于获取客户端发送的请求信息,在JSP页面中,可以通过设置Request对象的属性来传递参数,然后在目标页面中通过获取Request对象的属性来获取参数值。
1、设置Request对象的属性:
<% String name = "张三"; request.setAttribute("name", name); %>
2、获取Request对象的属性:
<% String name = (String) request.getAttribute("name"); %>
使用Session对象传递参数
Session对象是一个会话对象,用于存储用户在一次会话期间的信息,在JSP页面中,可以通过设置Session对象的键值对来传递参数,然后在目标页面中通过获取Session对象的键值对来获取参数值。
1、设置Session对象的属性:
<% String name = "张三"; session.setAttribute("name", name); %>
2、获取Session对象的属性:
<% String name = (String) session.getAttribute("name"); %>
使用Cookie对象传递参数
Cookie对象是一个存储在客户端的小型文本文件,用于存储用户信息,在JSP页面中,可以通过设置Cookie对象的名称和值来传递参数,然后在目标页面中通过获取Cookie对象的名称和值来获取参数值。
1、设置Cookie对象:
<% String name = "张三"; Cookie cookie = new Cookie("name", name); response.addCookie(cookie); %>
2、获取Cookie对象:
<% Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals("name")) { String name = cookie.getValue(); } } } %>
使用URL重写传递参数
URL重写是一种将查询字符串添加到URL的方法,以便在不刷新页面的情况下向服务器发送数据,在JSP页面中,可以通过修改URL来实现参数的传递,然后在目标页面中通过解析URL来获取参数值。
1、修改URL:
<a href="target.html?name=张三">跳转到目标页面</a>
2、解析URL:
<%@ page import="java.net.URLDecoder" %> <%@ page import="java.nio.charset.StandardCharsets" %> <%@ page import="java.io.UnsupportedEncodingException" %> <%@ page import="java.net.URL" %> <%@ page import="java.net.URLConnection" %> <%@ page import="java.util.HashMap" %> <%@ page import="java.util.Map" %> <%@ page import="javax.servlet.http.HttpServletRequest" %> <%@ page import="javax.servlet.http.HttpServletResponse" %> <%@ page import="org.apache.commons.lang3.StringUtils" %> <%@ page contentType="text/html;charset=UTF8" language="java" %> <html> <head> <title>目标页面</title> </head> <body> <% String queryString = request.getQueryString(); // 获取查询字符串 if (queryString != null && !queryString.isEmpty()) { // 如果查询字符串不为空 Map<String, String> params = new HashMap<>(); try { // 解析查询字符串 String[] pairs = queryString.split("&"); for (String pair : pairs) { int idx = pair.indexOf("="); String key = URLDecoder.decode(pair.substring(0, idx), StandardCharsets.UTF_8); String value = URLDecoder.decode(pair.substring(idx + 1), StandardCharsets.UTF_8); params.put(key, value); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // 获取参数值 if (params != null && params.containsKey("name")) { String name = params.get("name"); } } %>
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/432795.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复