• jsp 几种跳转


    服务器端的跳转地址栏信息不会改变。是服务器端跳转的有forward

    1.测试forward跳转:地址栏信息不回改变。运行的页面名为ceshi_forward,执行的跳转语句为

    <jsp:forward page="frame1.jsp"></jsp:forward> 这句话之后的所有代码都没有执行。在浏览器中查看源代码时显示的代码全部都是frame1.jsp页面的代码。字符集设置一个为gbk,一个为gb2312,跳转没有问题,但要注意不能设置除此以外的字符集。

    传值问题在forward动作之间写入<jsp:param name="参数名称" value="参数值" />就可以进行传值了。解决乱码问题同样是在传值的页面(ceshi_forward.jsp)写入request.setCharacterEncoding("gbk");在接收值的页面不需要写。

    源代码中不显示<jsp:forward page="frame1.jsp"></jsp:forward>动作标志语句。

    2. 测试include动作跳转:地址栏信息不变。执行完<jsp:include page="frame1.jsp"></jsp:include>语句后,它后面的语句也能执行

    字符集设置一个为gbk,一个为gb2312,跳转没有问题。查看源文件代码时是frame1.jsp和该页面代码的合体。在源代码中没有动作标识的代码,即不显示<jsp:include page="frame1.jsp"></jsp:include>这个语句。

    <jsp:param name="参数名称" value="参数值" />可以向被包含文件传递参数。接收参数值的语句为request.getParameter("name");解决乱码问题需要在传值的页面写入request.setCharacterEncoding("gbk");在接收值的页面不需要写。

    3.测试include指令  :地址栏信息不变。执行完<%@ include file="frame1.jsp" %>语句后,其后的语句能执行。查看源文件代码时是frame1.jsp和该页面代码的合体。在源代码中没有指令标识的代码。在page的contentType中即使多一个空格也会报错。

    4.include指令与动作的区别:

    1)属性:include指令通过file属性指定被包含的页面,file属性值是一个实际存在的路径,不支持任何表达式,如(<%=path%>),也不能像超链接(<a href="*.jsp?name="""></a>)那样传值。

    而include动作支持jsp表达式。是通过page属性来指定被包含的文件的。

    2)处理方式:指令被包含文件的内容会原封不动的插入到包含页中使用include指令的地方,jsp编译器对这个合体进行编译,最终编译后的文件只有一个。

    <jsp:incllude></jsp:incllude>动作标志,当该标志被执行时,程序会将请求住发到被包含的页面,并将结果输出到浏览器中,然后返回包含页继续执行后面的代码。服务器执行的是两个文件,所以JSP分别对两个文件编译。

    3) 包含方式:include指令包含文件,最终服务器执行的是将两个文件合成后由JSP编译器编译成的一个class文件,所以被包含的内容应是固定不变的,是静态包含。

    include动作标志通常用来包含经常需要改动的文件。对包含文件的编译是在执行时才进行的。

  • 相关阅读:
    sizeof运算符介绍以及常见的坑
    程序员面试需要带身份证和毕业证原件吗
    CentOS7配置rsync实现文件同步
    CentOS7配置samba共享文件系统
    freecplus框架-字符串操作
    freecplus框架-文件操作
    freecplus框架-日志文件操作
    freecplus框架-日期、时间和计时器
    Unix 网络编程卷一源码编译踩坑记录 ubtutu 19.10
    实时人流量监测——海康威视sdk初体验
  • 原文地址:https://www.cnblogs.com/mymindview/p/3496821.html
Copyright © 2020-2023  润新知