JavaWeb JSP技术(上)

    xiaoxiao2026-04-10  5

    一,JSP

    JSP(Java Server Pages)代替servlet 简化输出,实质就是servlet。 第一次运行JSP的过程:

    第二次访问同一个页面index.jsp,如果没有更改index.jsp 不会再转换了 直接调用 servlet的service方法,如果更改了index.jsp 就重新转换。

    二,JSP的五个组成部分

    (一)模版元素2个

    html 和xml XML=Extensible Markup Language 作用: 1. 当做配置文件使用 web.xml 2. 保存数据(当做数据库使用 txt xml)

    (二)注释元素 3个

    1.html注释

    会显示在客户端源码中

    2.JSP注释

    <%–我是JSP注释,不会显示到浏览器的源文件中,只存在于JSP文件中,转换成的servlet中没有该注释内容–%>

    3.java注释

    java注释,不会显示到浏览器的源文件中,JSP中有,转换成的servlet源文件中也有

    (三)指令元素 3个

    1.page指令(页面指令)

    < %@page %>

    常用的指令元素的属性 (1)import 导入 相当于java的import

    (2)errorPage 和isErrorPage errorPage 表示用来处理错误的页面 处理错误的页面 如果想使用exception内置对象 必须要 加一个 isErrorPage=”true” 这时 exception内置对象才会被创建

    (3) pageEncoding 和contentType contentType : 相当于 servlet中的 response.setContentType(“text/html;charset=utf-8”);

    作用:

    1.设置服务器输出的编码方式是utf-8(生成页面的编码) 默认是ISO-8859-1 Latin-1 西欧文字 1个字节 256

    2.提示浏览器使用utf-8解码

    2.include 指令(静态包含)

    <%@include file="reused.jsp"%>

    3.taglib

    <%@taglib prefix="c" uri="taglibURI" %>

    (四)脚本元素 3个 1.声明

    <%! 成员变量或成员方法%>

    被转换成servlet中的成员变量和成员方法

    2.JSP表达式

    <%="你好,世界"%> 相当于 <% out.println("你好,世界"); %>

    转化成servlet中的JspWriter out;

    3.scriptlets

    <% int a = 10; %>

    多一个<% %> 会合成一个 一起转换成Servlet中的service(_jspService) 在<%%>里定义的变量是局部变量,这样同名的局部变量把实例变量隐藏了,想访问实例变量要加this.a

    (五)动作元素 7个

    1.动态包含

    <jsp:include page="reused.jsp" flush="true"> <jsp:param name="username" value="zzy"/> </jsp:include>

    flush: 表示在reused页面包含进来之前,是否刷新include1.jsp页面,一定要改成true

    2.传参

    “` < jsp:param name=”username” value=”zzy”/>

    3.转发

    转发 < jsp:forward page=”msg.jsp”/> 重定向 <% response.sendRedirect(“msg.jsp”); %>

    4.< jsp:useBean>、< jsp:setProperty>、< jsp:getProperty>三个

    5.< jsp:plugin> 可以使用它来插入Applet或者JavaBean

    转发和重定向的区别 3个

    (1)转发它是服务器的内部行为 URL地址不变 一个请求一个响应 重定向服务器的外部行为,强制用户发出另一个请求,两个请求,两个响应,URL地址改变

    (2)由于转发是服务器的内部行为,只能转发到本服务器上的其他资源(jsp、servlet) 不能跳到其他服务器的资源 如百度; 重定向由于是服务器的外部行为,可以跳转到其他服务器的资源。

    (3)转发以后的代码不会被执行(因为转换后的servlet中有句return,表示结束该方法,所以后面都不执行了) 重定向 后的代码仍然会被执行

    静态包含和动态包含的区别 3个 (1) 静态包含是将被导入页面的代码完全融入,两个页面融合成一体,转换成一个servlet 动态包含中 页面和 被导入页面 会转换成两个servlet,在servlet中使用include那句话把运行结果导入

    (2)静态包含 被导入页面的指令元素也会被导入; 动态包含指令元素不会被导入

    这样如果静态包含 页面 和 被导入的页面定义了不同的contentType,由于静态包含指令元素也会被导入,这样会发生contentType冲突的情况,而动态包含不会.

    (3)动态包含还可以传参

    转载请注明原文地址: https://ju.6miu.com/read-1308703.html
    最新回复(0)