[JAVAEE笔记]07.JSP

Java Server Pages: java 服务器端⻚⾯(JSP)

JSP概念

JSP是一个特殊的⻚⾯,其中既可以指定定义 html 标签,也可以定义 java 代码,可⽤于简化书写

原理:JSP本质上就是⼀个Servlet

JSP在第⼀次被访问时会被Web容器翻译成servlet,再执⾏,过程:

第⼀次访问 → helloServlet.jsp → helloServlet_jsp.java → 编译运⾏

PS:被翻译后的servlet在 IDEA编译的 Tomcat 的 work ⽬录中可以找到

具体可以在Tomcat启动的时候直接看到文件的绝对路径

JSP脚本

JSP的脚本:JSP定义Java代码的⽅式

  1. <%java代码%>:内部的Java代码翻译后,在service⽅法中。service⽅法中可以定义什么,该脚本中就可以定义什么。
  2. <%=表达式%>:内部的Java代码翻译后,会输出到⻚⾯上【out.print()】。输出语句中可以定义什么,该脚本中就可以定义什么。
  3. <%!类的成员 %>:内部的Java代码翻译后,在jsp转换后的java类的成员位置。
<div><% pageContext.setAttribute("name","zhangsan"); %></div>
<div><%=pageContext.getAttribute("name") %></div>
<div><%! int a=0;int b=0; %></div>

JSP注释

JSP注释: 不同的注释可⻅范围是不同

  1. html注释: :可⻅范围 JSP源码、翻译后的servlet、⻚⾯显示html源码
  2. java注释://单⾏注释 /多⾏注释/ :可⻅范围 JSP源码、翻译后的servlet
  3. JSP注释:<%–注释内容–%>:可⻅范围 JSP源码
jspjava
html元素out.write(“html元素”)
<%%>service方法中的java代码
<%=表达式%>out.print(表达式);
<%!类的成员 %>类的成员

JSP指令 <%@指令 %>

  1. page: language - 只支持java

    extends

    isELIgnored - 是否忽略EL表达式,false-不忽略

    errorPage - 相当于出现异常后转发

  2. include: 静态页面包含 file=“服务器端path”

    特点: 被包含的页面[demo7]不会翻译成java文件, 直接将内容嵌入包含页面[demo6]中

  3. taglib: 引入标签库[类库] url=“类库地址” prefix=“前缀”

JSP内置对象

  • 参数: request, response, config
  • 域对象: application, session(session=true), pageContext
  • 输出: out - JspWriter(自带8kb缓冲区,关闭缓冲区 buffer=none)
  • 异常: exception(isErrorPage=true)
  • 自己: page
  • pageContext:
  • 作用1: 作为域对象使用, 可以操作其他三个域对象
  • 作用2: 可以获得其他8个内置对象 getXXX()
  • 作用3: findAttribute(name)
 <%-- <%=1+2%> empty: 元素为null 或者 内容是空("", 空集合/数组) --%>
    普通表达式: ${1+2  }, ${empty ""}, ${empty param.age} <br>
    <%-- request.getParameter("username") --%>
    获得参数: ${param.username} <br>
    <%-- request.getAttribute("name") --%>
    使用域对象: ${requestScope.name}, ${requestScope['name']}<br>
    <%-- request.getHeader("user-agent") --%>
    获得请求头: ${header['user-agent']} <br>
    <%-- request.getServletContext().getInitParameter("driver") --%>
    获得初始化参数: ${initParam.driver}<br>
    <%-- request.getCookies() cookie.getName() cookie.getValue() --%>
    获得cookie: ${cookie.username.value}<br>
    <%-- session.getAttribute("user").getName() .getAge() --%>
    session域中存的是user对象: ${sessionScope.user.age}

JSP标签(动作)

  • jsp:include 动态包含 <jsp:include page=“被包含的⻚⾯”/>

    特点: 被包含的页面[demo8]会翻译成java文件, 通过一个include方法引入到包含页面[jsptag]中

  • jsp:forward 转发, <jsp:forward page=“要转发的资源” />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值