JSP

Jsp:可以写JAVA代码的html页面。。其实就是一个servlet::简化了之前servlet自己输出html标签的工作。。

Java Server Pages:Java服务器端页面。。。

出现的原因:之前是用getWriter流输出html页面。。。。但是如果比较复杂。。。这么输出费劲。。所有有了JSP


服务器将jsp转换成java类,服务器启动编译器,将.java编译成.class文件。访问字节码文件。。。

jsp就是一个servlet...是由服务器转换成的servlet:


jsp中如何写java代码:jsp脚本:用于定义java代码:(jsp是servlet,就好理解 jsp脚本的使用了) JSP脚本写好后,不需要重启服务器就可以生效。

<% System.out.println("Hello,World"); %>

<%!  %> 定义成员内容:成员变量,成员方法  (用的较少,因为servlet中,最好不用成员变量 )

<%= %> 定义service方法的输出语句(输出到页面中的语句)写完后不能加分号。。

<% %>定义局部内容:service方法中的局部内容,局部变量。。


jsp内置对象:在jsp不需要创建可以直接 使用的对象:共9个。。。。(request,response,session,out等等)



html和 java代码混合,维护性差。不适合分工。。。所以不适合大面积书写。。。。



JSP注释:首先html注释:<!--      -->,不能注释java代码

jsp专用注释:<%-- --%>


JSP指令:配置 jsp或者导入文件,

<%@ 指令名称 属性=属性值%>

<%@ page language="java" import="java.util.*,java.io.FileInputStream"  import="java.io.*"pageEncoding="UTF-8"%>:用于配置jsp信息

属性:1,,language:指定jsp使用的语言环境

       2,import:因为写java代码需要导包,写在这个位置。可以写多个

     3,pageEncoding:页面的编码是UTF-8,,指定当前页面的编码并通知浏览器服务端使用的编码

     4,contentType:告诉浏览器服务端使用的编码。。

     5,errorPage:当该页面出现异常,则跳转到errorPage指定的页面中。一般在web.xml文件里配置<error-page><error-code></error-code><location></location></error-page>

     6,isErrorPage:是否是错误页面,出错后跳转到该页面。。如果是true,则可以通过exception内置对象,获取上一页面的异常信息。。

     7,session:true/false 是否在支持session内置对象。。

     8,isELIgnored:是否支持 el表达式。

<%@ include %>:用于静态包含。。用于包含相同的页面。。

<%@ include file="/b.jsp"%>

静态包含的特点:1,最终只有一个.class文件;

<%@ taglib %>:加载资源,(加载标签库)


JSP标签:

1,<jsp:useBean>

2,<jsp:setProperty>

3,<jsp:useBean>

4,<jsp:include>动态包含

5,<jsp:forward>转发

6,<jsp:param>传递请求参数

JSP内置对象:jsp可以 直接使用的对象。。因为servlet中的service方法中,已经定义了

1,application: 类型servletContext

2,session 

3,request

4,pageContext : 域对象 页面域

pageContext.setAttribute("msg","haha");

用法/用途:后期不定义java代码时,可以存入域,并取出来用。。。

获出其他8个内置对象:pageContext.getXXXX();没有web环境时

5,response

6,out 输出流:在jsp中,使用out向页面输出。

7,config :servletConfig对象

8,page:当前页面的对象。相当于this

9,exception : Throwable


el表达式:Expression Language

特殊规则字符串,用于替换jsp页面的java代码,简化书写

格式:${表达式} 

${1}相录于<%=1%>

运算符:很多,,重点解物释下empty

${empty msg}用来判断msg是否为空。。不仅可以判断是否为null ,还可以判断容器大小是否为零。

not:非的意思。。

获取域中存储的数据 : requestScope sessionScope applicationScope,pageScope

如果: request.setAttribute("msg","hello");

可以 通过 ${requestScope.msg}取到“hello” 

取对象:${requestScope.p.name}

取list集合中的数据:${sessionScope.list[0]}

取map集合中的数据:${pageScope.map.p1.name}或者:${pageScope.map["p1"].name}//用遍历

简化格式:不需要加域对应的内置对象,直接获取:如上写成${map.p1.name} ::为什么可以这么写??

如果不加el内置对象名称,会从每一个域中依次查找,直到找到为止。查找顺序,从小到大 pageScope->applicationScope。。如果没有找到则返回空字符串""



JSTL:jsp standard tag library jsp标准标签库

功能:用于替换页面上的java代码,简化书写

分类:

core:

fmt:

sql:

xml:

function:

使用步骤:

1,导入标签库 使用taglib指令

<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core%>

2,使用

<c:if test="表达式">

hello//表达式为true时,输出hello

</c:if>

core标签使用:一共12个标签

1,c:out

2,c:set 向域中设置值 

<c:set var="键名" value ="值" scope="4个域" ></c:set>

3,c:remove

4,c:catch

5,c:if 进行if逻辑判断

<c:if test="表达式">

//如果表达式为真,则执行此处的语句

</c:if>

6,c:choose

7,c:forEach:循环遍历

<c:forEach begin ="1" end="9" var="i" step="1">

${i}

</c:forEach>

<c:forEach items = "${list}" var="p" varStatus="s"> //items是容器,一般通过el从域中获取;var:容器中的对象 varStatus:循环的次数

<tr>

<td>s.count</td>

<td>${p.name}</td>

<td>${p.age}</td>

<td>${p.gender}</td>

</tr>

</c:forEach>

8,c:url :简化形式定义路径

1,自动补全:<a href = "<c:url value='/jstl3.jsp'/>">jstl3</a>

2,自动url重写:

。。。。

自定义标签:

原理:java代码。。

步骤:

1,定义java类,实现 SimpleTag

2,在web-inf 下定义一个tld文件,配置该标签

3,导入标签库后可以使用









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值