JSP 페이지 간 매개변수 전달은 자주 사용되는 기능입니다. 때로는 여러 JSP 페이지 간에 매개변수를 전달해야 하는 경우가 있습니다. 다음 글에서는 JSP 페이지 간 값 전달 방법에 대한 관련 정보를 주로 소개합니다. JSP에 관심이 있는 친구라면 아래에서 살펴보도록 하겠습니다.
머리말
프로젝트에서는 JSP 페이지 간 매개변수 전달이 필요한 경우가 많습니다. 이는 기본 웹 기술로 간주되어야 합니다. 다양한 방법을 요약해 보고, 필요하다면 장단점을 따져보고 가장 적절한 방법을 선택할 수 있습니다. 자세한 소개를 살펴보겠습니다.
1. URL 링크 뒤에 매개변수를 추가합니다
<a href="next.jsp?paramA=A¶mB=B..." rel="external nofollow" >URL 后面追加参数</a> <jsp:include page="next.jsp"><jsp:param name="paramA" value="A"/></jsp:include> <jsp:forward page="next.jsp"><jsp:param name="paramA" value="B"/></jsp:forward> response.sendRedirect("next.jsp?paramA=A¶mB=B...") window.location = "next.jsp?paramA=A¶mB=B..."
위 코드가 실행되면 매개변수가 있는 next.jsp 페이지로 이동합니다.
next.jsp 페이지에서 해당 매개변수를 가져오는 방법은 다음과 같습니다.
//内嵌的 java 代码 <%String paramA = request.getParameter("paramA"); %> //如果引入了 EL {param.paramA}
장점: 단순성 및 다중 브라우저 지원(URL을 지원하지 않는 브라우저는 없습니다).
단점:
1) 전송되는 데이터는 문자열만 가능하며 데이터 유형 및 크기에 특정 제한이 있습니다.
2) 전송된 데이터의 값은 브라우저 주소에 표시됩니다. bar 보세요, 보안 수준이 낮습니다.
2.Form
<form action="next.jsp" method="post"> <input type="text" name="paramA" value="A"> <input type="hidden" name="paramB" value="B"> <input type="submit" value="提交"> </form>
next.jsp 페이지에서 해당 매개변수를 얻는 방법은 (1)과 유사합니다.
장점:
1) 단순성 및 다중 브라우저 지원(어떤 브라우저도 양식을 지원하지 않음)
2) 제출할 수 있는 데이터 양이 URL 방식보다 훨씬 큽니다. 전송 값은 브라우저의 주소 표시줄에 표시되지만 약간의 해킹을 사용하면 페이지 소스 코드에서 매개변수 목록을 구성할 수도 있습니다.
단점:1) 전송되는 데이터는 문자열만 될 수 있습니다.
3. Cookie 설정을 통해 클라이언트의 인증 자격 증명을 사용하여 작은 쿠키도 JSP 페이지의 값 전송을 실현할 수 있습니다.
<% Cookie c=new Cookie("paramA","A"); c.setMaxAge(60*60); //cookie 有效期1分钟 response.addCookie(c); //将cookie 添加到 http响应中 %>
next.jsp 페이지에서 쿠키를 읽으려면 request.getCookies()
메서드를 호출하여 javax.<a href="http:/%20/www.php.cn/wiki/1516.html" target="_blank">servlet</a>
request.getCookies()
方法来获得一个javax.<a href="http://www.php.cn/wiki/1516.html" target="_blank">servlet</a>.http.Cookie
对象的数组。
然后遍历这个数组,使用getName()
方法和getValue()
그런 다음 이 배열을 반복하고 getName()
메서드와 getValue()
메서드를 사용하여 각 쿠키의 이름과 값을 가져옵니다.
//内嵌的 java 代码 <% Cookie cookie = null; // 获取cookies的数据,是一个数组 Cookie[] cookies = request.getCookies(); if(cookies != null ){ for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; out.print("参数名 : " + cookie.getName()); out.print("<br>"); out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>"); out.print("------------------------------------<br>"); } }else{ out.println("<h2>没有发现 Cookie</h2>"); } %> //EL 获取方式 ${cookie.paramA.value}
장점:
1) 클라이언트 시스템이 닫혀도 다음에 열 때 내부 값을 계속 얻을 수 있습니다.
2) 쿠키는 다음을 수행하는 데 도움이 될 수 있습니다. 서버는 여러 상태 정보를 저장하지만, 서버 측에 특별히 스토리지 자원을 할당할 필요가 없으므로 서버 측의 부담이 줄어듭니다.
단점:
1) URL이나 Form에 비해 보안이 많이 향상되었지만 클라이언트 쿠키를 얻어 고객 정보를 노출시키는 검은 방법도 있습니다.
4. 설정 Session
개인적으로는 세션과 쿠키가 서버측에서 하나, 클라이언트측에서 하나라고 생각합니다.
키-값 쌍을 추가하면 페이지 간 전송뿐만 아니라 실제로 데이터 공유 솔루션이 됩니다.
<% session.setAttribute("paramA","A"); response.sendRedirect("next.jsp"); %>
next.jsp의 세션을 읽고 싶다면:
//内嵌java 片段 <%=session.getAttribute("paramA") %> //EL 获取方式 {session.paramA}
Session의 장점과 단점은 Cookie를 참고하세요.
위 내용이 이 글의 전부입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다! !
관련 권장 사항:
WEB-INF 디렉터리에서 JSP 페이지에 직접 액세스하는 방법에 대한 자세한 설명
에서 제공하는 함수 태그 EL 표현식 문자열 조작을 위한 JSP 메서드의 JSTL
위 내용은 JSP 페이지 간 값 전송 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!