javaweb——jsp

灵魂三问

什么是jsp

jsp:java server pages(java服务器页面),由早前的 sun 公司倡导,很多企业一起参与研发的动态网页技术。

有什么用

html 多数情况下用来显示静态内容 , 一成不变的。 但是有时候我们需要在网页上显示一些动态数据, 比如: 查询所有的学生信息, 根据姓名去查询具体某个学生。  这些动作都需要去查询数据库,然后在网页上显示。 html是不支持写java代码  , jsp里面可以写java代码。 

怎么用

<% 内容 %>

 

总概

我们将分为以下几点进行学习:

  1. 三大指令 :page、include、taglib
  2. 动作标签 :(重点三个 forward、include、param) 
  3. 九大对象  :pageContext、request、session、application、out、response、exception、page、config

三大指令

1、page指令

写法:<%@ page [属性名=属性值 …] %>

实例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="false" session="true" errorPage="error.jsp"%>

常用属性

language:页面所用的语言,默认为java,指定的语言将影响是之后jsp语法中能使用哪些语法

contentType:text/html,MIMEType 表示一个为文本,html网页,也可指定为视频等等,charset指定文本编码方式,默认为: text/html; charset=ISO-8859-1

pageEncoding: jsp内容编码

session:用于控制在这个jsp页面里面能否直接使用session对象。,默认为true,即能使用

errorPage:指定页面出现错误是跳转的页面,与isErrorPage配合使用

isErrorPage:指定该jsp是否Wie错误的跳转页面,默认为false,即不是。设置为true时表示该页面为错误跳转页面

2、include指令

写法 :<%@include file="文件名" %>

实例:

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

实现细节:把另外一个页面的所有内容拿过来一起输出。 所有的标签元素都包含进来。

如other01页面中包含other02页面,则java代码如下:


 

3、taglib指令

写法:<%@ taglib prefix=""  uri=""%>  

 prefix : 标签库的别名     uri: 标签库路径   

暂时不讲,将在el和jstl中继续提到

 

动作标签

写法: <jsp:标签名>

包含以下标签:

常用的有三个:forward、include、param

 1、forward

作用:实现请求转发

使用实例:

<jsp:forward page="other02.jsp"></jsp:forward>

2、include

作用:包含某个页面

使用实例:

<jsp:include page="other01.jsp"></jsp:include>

注: 这里是动态包含。 也就是不把包含的页面所有元素标签全部拿过来输出,而是把它的运行结果拿过来。  底层实现代码如下:

3、param

作用:设置参数(注:需要与forward或include配合使用)

一般与forward一起使用,设置转发带过去的参数

使用实例:

<jsp:forward page="other02.jsp">
	<jsp:param value="houyi" name="name"/>
</jsp:forward>

 

九大对象

jsp中包含了9个内置的对象(即jsp帮你创建好了不用自己创建的对象),分别为:

作用域对象(四个)

- pageContext   作用域仅限于当前的页面。  还可以获取到其他八个内置对象。
- request   作用域仅限于一次请求, 只要服务器对该请求做出了响应。 这个域中存的值就没有了。
- session   作用域限于一次会话(多次请求与响应) 当中。 
- application   整个工程都可以访问, 服务器关闭后就不能访问了。 

是什么:表示这些对象可以存值(通过setAttribute   和  getAttribute),他们的取值范围有限定。 

使用实例:

		使用作用域来存储数据<br>

		<%
			pageContext.setAttribute("name", "page");
			request.setAttribute("name", "request");
			session.setAttribute("name", "session");
			application.setAttribute("name", "application");
		%>
		
		取出四个作用域中的值<br>
		
		<%=pageContext.getAttribute("name")%>
		<%=request.getAttribute("name")%>
		<%=session.getAttribute("name")%>
		<%=application.getAttribute("name")%>

输出对象(两个)

- out         【JspWriter】

- response  【HttpServletResponse】

区别:先输出response的内容再输出out的内容

原因:在jsp生成的java代码中可看到,out对象输出内容需放置到response的缓冲区去,故先输出response本身要输出的内容,然后再输出out里面的内容

其他对象(三个)

- exception(Throwable)  只有在指定为错误页面的jsp中才有

- page (Object)   this对象,即页面本身

- config (ServletConfig)   和ServletConfig的对象用法一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值