jsp中獲取url參數(shù)的方法與應(yīng)用場(chǎng)景詳解
在JSP中獲取URL參數(shù)(如 ?xx=yy中的 xx這個(gè)參數(shù))非常簡(jiǎn)單,主要有以下幾種方式:
一、使用 EL 表達(dá)式(推薦,最簡(jiǎn)潔)
EL表達(dá)式是獲取URL參數(shù)最方便的方式。
<!-- 直接獲取參數(shù)值 -->
<p>參數(shù)xx的值是:${param.xx}</p>
<!-- 在HTML屬性中使用 -->
<input type="text" value="${param.xx}" />
<!-- 條件判斷 -->
<c:if test="${not empty param.xx}">
<p>xx參數(shù)存在,值是:${param.xx}</p>
</c:if>
<!-- 多值參數(shù)(如?xx=1&xx=2)獲取第一個(gè)值 -->
<p>第一個(gè)值:${paramValues.xx[0]}</p>
<p>第二個(gè)值:${paramValues.xx[1]}</p>二、使用 JSP 腳本(傳統(tǒng)方式)
<%
// 獲取單個(gè)參數(shù)值
String xxValue = request.getParameter("xx");
// 獲取多值參數(shù)
String[] xxValues = request.getParameterValues("xx");
%>
<!-- 使用獲取到的值 -->
<p>參數(shù)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參數(shù)示例</title>
</head>
<body>
<h1>URL參數(shù)獲取演示</h1>
<!-- 方式1:EL表達(dá)式 -->
<div>
<h2>使用EL表達(dá)式:</h2>
<p>參數(shù)xx的值:<strong>${param.xx}</strong></p>
<p>參數(shù)yy的值:<strong>${param.yy}</strong></p>
<!-- 處理可能不存在的參數(shù) -->
<c:choose>
<c:when test="${not empty param.xx}">
<p>xx參數(shù)存在,值是:${param.xx}</p>
</c:when>
<c:otherwise>
<p>xx參數(shù)不存在</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>參數(shù)xx的值:<strong><%= xx %></strong></p>
<%
} else {
%>
<p>xx參數(shù)不存在或?yàn)榭?lt;/p>
<%
}
%>
</div>
<!-- 實(shí)際應(yīng)用:搜索功能 -->
<%
String keyword = request.getParameter("keyword");
if (keyword != null) {
%>
<h3>搜索結(jié)果顯示:</h3>
<p>您搜索的關(guān)鍵詞是:<em><%= keyword %></em></p>
<!-- 這里可以顯示搜索結(jié)果 -->
<%
}
%>
</body>
</html>四、實(shí)際應(yīng)用場(chǎng)景
1. 搜索功能
<!-- 訪問URL:search.jsp?keyword=java&category=books -->
<%
String keyword = request.getParameter("keyword");
String category = request.getParameter("category");
// 執(zhí)行搜索邏輯...
%>
<h2>搜索結(jié)果</h2>
<p>關(guān)鍵詞:${param.keyword}</p>
<p>分類:${param.category}</p>2. 分頁(yè)功能
<!-- 訪問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");
// 分頁(yè)查詢邏輯...
%>
<p>當(dāng)前第 ${param.page} 頁(yè),每頁(yè) ${param.size} 條</p>3. 帶默認(rèn)值的處理
<!-- 優(yōu)雅地處理可能為空的參數(shù) -->
<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>當(dāng)前頁(yè)碼:${pageNum}</p>
<p>每頁(yè)大小:${pageSize}</p>五、重要注意事項(xiàng)
空值處理:總是要考慮參數(shù)可能不存在的情況
編碼問題:中文參數(shù)可能需要處理URL編碼
<!-- 處理中文參數(shù) -->
<%
String keyword = request.getParameter("keyword");
if (keyword != null) {
keyword = new String(keyword.getBytes("ISO-8859-1"), "UTF-8");
}
%>安全性:對(duì)用戶輸入的參數(shù)進(jìn)行驗(yàn)證和轉(zhuǎn)義,防止XSS攻擊
<!-- 使用JSTL函數(shù)轉(zhuǎn)義HTML -->
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<p>安全顯示:${fn:escapeXml(param.userInput)}</p>總結(jié)
- 推薦使用EL表達(dá)式:
${param.參數(shù)名},簡(jiǎn)潔安全 - 多值參數(shù):使用
${paramValues.參數(shù)名[索引]}或request.getParameterValues() - 一定要處理空值情況,避免NullPointerException
- 考慮安全性,對(duì)用戶輸入進(jìn)行轉(zhuǎn)義
EL表達(dá)式是現(xiàn)代JSP開發(fā)的首選,代碼更簡(jiǎn)潔,可讀性更好。
到此這篇關(guān)于jsp中獲取url參數(shù)的方法與應(yīng)用場(chǎng)景詳解的文章就介紹到這了,更多相關(guān)jsp獲取url參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JSP response對(duì)象實(shí)現(xiàn)文件下載的兩種方式
這篇文章主要介紹了JSP隱含對(duì)象response實(shí)現(xiàn)文件下載的兩種方法,很簡(jiǎn)單,但很實(shí)用,需要的朋友可以參考下2014-09-09
java使用smartupload組件實(shí)現(xiàn)文件上傳的方法
這篇文章主要介紹了java使用smartupload組件實(shí)現(xiàn)文件上傳的方法,對(duì)比分析了使用組件與不使用組件實(shí)現(xiàn)文件上傳的區(qū)別,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
jsp 顯示springmvc modelmap傳遞的對(duì)象詳細(xì)介紹
這篇文章主要介紹了jsp 顯示springmvc modelmap傳遞的對(duì)象詳細(xì)介紹的相關(guān)資料,具有一定的參考價(jià)值,需要的朋友可以參考下2016-12-12
JSP對(duì)瀏覽器發(fā)送來的數(shù)據(jù)進(jìn)行重新編碼的兩種方式
使用JSP操作中文時(shí),經(jīng)常會(huì)出現(xiàn)一些亂碼問題。這里,我們只談一下對(duì)瀏覽器發(fā)送來的數(shù)據(jù)進(jìn)行重新編碼時(shí)的編碼方式。眾所周知,要對(duì)瀏覽器發(fā)送來的數(shù)據(jù)進(jìn)行重新編碼,只需要一個(gè)語(yǔ)句就可以了,很簡(jiǎn)單2013-09-09

