当前位置: 首页 > news >正文

jsp怎么拿到url参数

在JSP中获取URL参数(如 ?xx=yy中的 xx这个参数)非常简单,主要有以下几种方式:

一、使用 EL 表达式(推荐,最简洁)

EL表达式是获取URL参数最方便的方式。

<!-- 直接获取参数值 -->
<p>参数xx的值是:${param.xx}</p><!-- 在HTML属性中使用 -->
<input type="text" value="${param.xx}" /><!-- 条件判断 -->
<c:if test="${not empty param.xx}"><p>xx参数存在,值是:${param.xx}</p>
</c:if><!-- 多值参数(如?xx=1&xx=2)获取第一个值 -->
<p>第一个值:${paramValues.xx[0]}</p>
<p>第二个值:${paramValues.xx[1]}</p>

二、使用 JSP 脚本(传统方式)

<%// 获取单个参数值String xxValue = request.getParameter("xx");// 获取多值参数String[] xxValues = request.getParameterValues("xx");
%><!-- 使用获取到的值 -->
<p>参数xx的值是:<%= xxValue %></p><% if (xxValues != null && xxValues.length > 1) { %><p>所有值:</p><ul><% for (String value : xxValues) { %><li><%= value %></li><% } %></ul>
<% } %>

三、完整示例

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>获取URL参数示例</title>
</head>
<body><h1>URL参数获取演示</h1><!-- 方式1:EL表达式 --><div><h2>使用EL表达式:</h2><p>参数xx的值:<strong>${param.xx}</strong></p><p>参数yy的值:<strong>${param.yy}</strong></p><!-- 处理可能不存在的参数 --><c:choose><c:when test="${not empty param.xx}"><p>xx参数存在,值是:${param.xx}</p></c:when><c:otherwise><p>xx参数不存在</p></c:otherwise></c:choose></div><!-- 方式2:JSP脚本 --><div><h2>使用JSP脚本:</h2><%String xx = request.getParameter("xx");String yy = request.getParameter("yy");if (xx != null && !xx.trim().isEmpty()) {%><p>参数xx的值:<strong><%= xx %></strong></p><%} else {%><p>xx参数不存在或为空</p><%}%></div><!-- 实际应用:搜索功能 --><%String keyword = request.getParameter("keyword");if (keyword != null) {%><h3>搜索结果显示:</h3><p>您搜索的关键词是:<em><%= keyword %></em></p><!-- 这里可以显示搜索结果 --><%}%>
</body>
</html>

四、实际应用场景

1. 搜索功能

<!-- 访问URL:search.jsp?keyword=java&category=books -->
<%String keyword = request.getParameter("keyword");String category = request.getParameter("category");// 执行搜索逻辑...
%>
<h2>搜索结果</h2>
<p>关键词:${param.keyword}</p>
<p>分类:${param.category}</p>

2. 分页功能

<!-- 访问URL:list.jsp?page=2&size=20 -->
<%int page = Integer.parseInt(request.getParameter("page") != null ? request.getParameter("page") : "1");int size = Integer.parseInt(request.getParameter("size") != null ? request.getParameter("size") : "10");// 分页查询逻辑...
%>
<p>当前第 ${param.page} 页,每页 ${param.size} 条</p>

3. 带默认值的处理

<!-- 优雅地处理可能为空的参数 -->
<c:set var="pageNum" value="${not empty param.page ? param.page : 1}" />
<c:set var="pageSize" value="${not empty param.size ? param.size : 10}" /><p>当前页码:${pageNum}</p>
<p>每页大小:${pageSize}</p>

五、重要注意事项

  1. 空值处理:总是要考虑参数可能不存在的情况

  2. 编码问题:中文参数可能需要处理URL编码

<!-- 处理中文参数 -->
<%String keyword = request.getParameter("keyword");if (keyword != null) {keyword = new String(keyword.getBytes("ISO-8859-1"), "UTF-8");}
%>
  1. 安全性:对用户输入的参数进行验证和转义,防止XSS攻击

<!-- 使用JSTL函数转义HTML -->
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<p>安全显示:${fn:escapeXml(param.userInput)}</p>

总结

  • 推荐使用EL表达式${param.参数名},简洁安全

  • 多值参数:使用${paramValues.参数名[索引]}request.getParameterValues()

  • 一定要处理空值情况,避免NullPointerException

  • 考虑安全性,对用户输入进行转义

EL表达式是现代JSP开发的首选,代码更简洁,可读性更好。

http://www.dtcms.com/a/602154.html

相关文章:

  • 有机蔬菜:清爽解腻的炖锅搭档
  • 网站的时间对齐应该怎么做wordpress中文评论插件
  • 515ppt网站建设岳麓区专业的建设网站公司
  • mysql第5次作业---hyx
  • LLM的“哥白尼革命”:物理AI与世界模型,AI的下一个战场!
  • VC软件编译C语言 | 详细教程与常见问题解答
  • 高职单招与统招比较及职业发展指南
  • Cursor vs Claude Code:AI编程工具深度对比与选择指南
  • php论坛网站源码下载大型购物网站设计
  • 网站建设标书样本如何修改wordpress登录域名
  • 深圳网站建设联系方式crm客户管理系统论文
  • Python 100例:深入学习与实践指南
  • “系统性”学习高并发路线
  • VL25 输入序列连续的序列检测
  • 如何做条形码网站怎么搞浏览器如何推广自己网站
  • 系统之美—人文行走
  • 用Python和Websockets库构建一个高性能、低延迟的实时消息推送服务
  • 海尔网站建设水平河北廊坊seo网站建设网站优化
  • 小型深圳网站定制开发最专业的网站建设
  • 中山网站优化排名徐州祥云做网站
  • 8、hall速度控制——速度电流双闭环控制(一)
  • 网页版C语言编译器 | 在线体验C语言编程,快速编译与调试
  • 网站如何调用微博网站集群建设是
  • 「单题起答」功能解锁丨考试升级
  • Effective Python 第50条:用__set_name__给类属性加注解
  • 泉州市住房与城乡建设网站常用的网站有哪些
  • wordpress站点设置使用期限武夷山网站制作
  • python 迭代器和生成器
  • 编译型语言的两大步骤 | 深入理解编译过程与优化技术
  • (三)分支与合并 - git rebase 命令的使用