jsp笔记!
1)JSP介绍:
JSP是一个页面,和html很像的一个页面,和html不同的地方,在页面里面可以写java代码
在jsp中可以直接使用request或者是session对象。
2)JSP和Servlet的区别:
jsp是一个特殊的servlet,是一个Java类。作用:方便显示。劣势:处理业务逻辑复杂。
servlet是一个java类,作用:不方便处理页面的显示,优势:是处理业务逻辑比较方便。
3)JSP的运行原理:
JSP的容器会将jsp转译成Servlet,然后再透过servlet容器来执行和操作。
jsp在本质上任然是Servlet。
1JSP语法分为三种不同的类型:
编译器指令:Include(静态引入), page(引入一些东西), taglib
脚本语法:
注释:<!--…--> (在源代码中可以看到,在后台文件中也可以看到 html/jsp),
不能注释jsp页面中的Java代码。
<%--…--%>(jsp专用的注释方式,在源代码中和后台文件中都看不到。可以注释掉
jsp页面中的java代码,建议使用)
声明:<%!...%> 不再service方法中,相当于Java代码里面的全局变量。
表达式:<%=…%>
Java脚本段:<%...%>
动作语法:<jsp:forward>,
<jsp:include>( 动态引入,建议使用)jsp标签实现的是Java代码的引入
2JSP编译器指令:
page<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="java.util.*, java.lang.*" %>
<%@ page errorPage="error.jsp" %>
include<%@ include file=“相对位置”%>
taglib<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
3JSP脚本语法:
“HTML注释”:<!— comments -->:Servlet中会生成,会发给浏览器
“隐藏注释”:<%-- comments --%>:Servlet中不生成,不发给浏览器
“声明”:<%! 声明; [声明; ] ... %>
“表达式”:<%=…%>
“脚本段”:<%...%>
4JSP九种内置对象:
request(HttpServletRequest),请求对象
response(HttpServletResponse),响应对象
pageContext,页面上下文对象
session(HttpSession),会话对象
application(ServletContext),应用程序对象
out,输出对象
config(ServletConfig),配置对象
page,页面对象
exception,例外对象
1)Request:
“request”对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,
是最常用的对象。关于它的方法使用较多的是getParameter、getParameterNames,
getParameterValue(复选框和复选功能的value值),通过调用这三个方法来获取请求对象中所包含的参数的值.
2)Response:
“response” 对象代表的是对客户端的响应,也就是说可以通过“response”对象来
组织发送到客户端的数据。但是由于组织方式比较底层,所以不建议使用,需要向客户
端发送文字时直接使用“out” 对象即可。
3)“session”:
对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下
使用,比如在线购物、客户轨迹跟踪等。
4)“application”:
对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和
getRealPath等。
5)out:
“out” 对象代表了向客户端发送数据的对象,与“response” 对象不同,
通过“out” 对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过“out”
对象直接向客户端写一个由程序动态生成HTML文件。
6)“config”:
对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,
以获得Servlet初始化时的参数。
7)“page”:
对象代表了正在运行的由JSP文件产生的类对象,一般不建议使用。
8)“exception”:
对象则代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,
而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用
el表达式代表“获取属性值”的java代码
${el Exception}所有的表达式以"${"开始,以"}"结束。
<c:out>标签:
${first}
${second}
${empty third?‘张三’:third } empty判断third是否为null?
<c :out value="${first}"></c:out><br>
<c :out value="${second}" escpeXml></c:out><br>
escapeXml=true;默认为true ,如果为true代表以文本的形式输出。
<c :out value="${third}" default="张三"></c:out>
default当输出的third是空值时,default就是默认的。
<c:set>
<c:set var="fourth" value="lishi" scope="request"></c:set>
pageScope requestScope sessionScope applicationScope