抓取jsp网页源代码(JSP页面间传递参数的方式及解决办法(二))

优采云 发布时间: 2022-03-01 03:05

  抓取jsp网页源代码(JSP页面间传递参数的方式及解决办法(二))

  在项目中经常需要在JSP页面之间传递参数,这应该算是web的基本功。

  尝试总结各种方式,在需要权衡利弊时选择最合适的方式。

  1. 在 URL 链接后附加参数

  URL 后面追加参数

response.sendRedirect("next.jsp?paramA=A&paramB=B...")

window.location = "next.jsp?paramA=A&paramB=B..."

  以上代码执行完毕后,会跳转到带参数的next.jsp页面。

  在next.jsp页面中获取对应参数的方式如下:

  //内嵌的 java 代码

//如果引入了 EL

{param.paramA}

  优点:简单性和多浏览器支持(没有浏览器不支持 URL)。

  缺点:

  1)传输的数据只能是字符串,对数据类型和大小有一定的限制;

  2)在浏览器地址栏中会看到传输数据的值,安全级别低。

  2. 表格

  在 next.jsp 页面中获取相应参数的方式类似于 (1).

  优势:

  1) 简单性和多浏览器支持(再次没有浏览器不支持表单);

  2) 可以提交的数据量远大于URL方式;

  3)传输的值会显示在浏览器的地址栏,但是有一点hack,也可以从页面源码中构造参数列表;

  缺点:

  1)传输的数据只能是字符串,对数据类型有一定的限制;

  3. 设置 Cookie

  使用客户端的认证凭证,一个小cookie,当然也可以实现JSP页面的值传递。

  要读取 next.jsp 页面上的 cookie,请调用 request.getCookies() 方法以获取 javax.servlet.http.Cookie 对象数组。

  然后遍历数组并使用 getName() 和 getValue() 方法来获取每个 cookie 的名称和值。

  //内嵌的 java 代码

//EL 获取方式

${cookie.paramA.value}

  优势:

  1)cookie的值可以持久化,即使客户端机器关闭,下次打开时仍然可以获取到里面的值;

  2) Cookies可以帮助服务器保存多个状态信息,但不需要在服务器上分配存储资源,减轻了服务器的负担。

  缺点:

  1)虽然相比URL和Form,安全性提升了很多,但是也有一些黑方法获取客户端cookie,暴露客户端信息。

  4. 设置会话

  个人认为session和cookie是服务器端一个,客户端一个。

  在给它们添加键值对之后,它不仅提供了页面之间的传输,还提供了数据共享的解决方案。

  在 next.jsp 中读取 session 的方式:

  //内嵌java 片段

//EL 获取方式

{session.paramA}

  Session的优缺点可以参考Cookies。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线