>  기사  >  웹 프론트엔드  >  JSP 페이지 간 값 전송 방법 요약

JSP 페이지 간 값 전송 방법 요약

韦小宝
韦小宝원래의
2018-01-18 09:55:152119검색

JSP 페이지 간 매개변수 전달은 자주 사용되는 기능입니다. 때로는 여러 JSP 페이지 간에 매개변수를 전달해야 하는 경우가 있습니다. 다음 글에서는 JSP 페이지 간 값 전달 방법에 대한 관련 정보를 주로 소개합니다. JSP에 관심이 있는 친구라면 아래에서 살펴보도록 하겠습니다.

머리말

프로젝트에서는 JSP 페이지 간 매개변수 전달이 필요한 경우가 많습니다. 이는 기본 웹 기술로 간주되어야 합니다. 다양한 방법을 요약해 보고, 필요하다면 장단점을 따져보고 가장 적절한 방법을 선택할 수 있습니다. 자세한 소개를 살펴보겠습니다.

1. URL 링크 뒤에 매개변수를 추가합니다

<a href="next.jsp?paramA=A&paramB=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&paramB=B...")

window.location = "next.jsp?paramA=A&paramB=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>

.http.Cookie 객체 배열.

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 페이지에 직접 액세스하는 방법에 대한 자세한 설명

새 JSP 페이지로 이동하는 ajax 구현 방법

에서 제공하는 함수 태그 EL 표현식 문자열 조작을 위한 JSP 메서드의 JSTL

위 내용은 JSP 페이지 간 값 전송 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.