JSP入门

2018-07-09  本文已影响0人  stoneyang94

JSP概述

JSP的原理

翻译-> 编译 -> 执行
demo.jsp翻译成_demo_jsp.java
_demo_jsp.java 编译_demo_jsp.class

JSP与Servlet分工

JSP的基本语法

1. JSP模板元素

2. JSP 脚本片段---<% code; %>

脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。

语法

<%
    //多行java代码
%>

例子

<% 
    out.write("hello"); 
    out.write("142");
%>

3. JSP表达式---<%= 变量表达式 %>

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方

语法

<%= 表达式 %>

例子

<%= 2+8 %>

4. JSP声明---<%! declaration %>

一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。

语法

<%! declaration; [ declaration; ]+ ... %>

例子

<%! int i = 0; %> 
<%! int a, b, c; %> 
<%! Circle a = new Circle(2.0); %> 

5. JSP注释---<%-- 被注释的内容 --%>

语法 描述
<%-- 注释 --%> JSP注释,注释内容不会被发送至浏览器甚至不会被编译
<!-- 注释 --> HTML注释,通过浏览器查看网页源代码时可以看见注释内容

JSP 指令---<%@ directive attribute="value" %>

JSP指令定义

是为JSP引擎而设计的,他们并不直接产生任何输出,而只是告诉浏览器如何处理JSP页面的其余部分

指令 描述
<%@ page ... %> 定义页面的依赖属性,如脚本语言、error页面、缓存需求
<%@ include ... %> 包含其他文件
<%@ taglib ... %> 引入标签库的定义,可以是自定义标签

语法

<%@ 指令 属性名1=“值1” 属性名2=“值2”  属性名3=“值3”>
或者
<%@ 指令 属性名1=“值1”%>
<%@ 指令 属性名2=“值2”%>
<%@ 指令 属性名3=“值3”%>

例子

<%@ page contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>

1. page

属性 定义 默认
language="java" 指定JSPContainer用什么语言来编译,目前只支持Java语言 默认为JAVA
extends=”className” 定义此JSP网页产生的Servlet是继承哪个  
import=”importList” 定义此JSP网页要使用哪些Java API  
session = "true false" 决定此页面是否使用session对象 默认为ture
buffer=”none size in kb” 决定输出流(Input stream)是否又缓冲区 默认为8kb
isThreadSafe=”true false” 是否支持线程 默认为true
errorPage=”url” 如果此页发生异常,网页会重新指向一个url  
isErrorPage=”true false” 表示此页面是否为错误处理页面 默认为false
contentType=”text/html;charset=gb2312” 表示MIME类型和JSP的编码方式  
pageEncoding=”ISO-8859-1” 编码方式  
isELLgnored=”true false” 表示是否在此JSP页面中EL表达式。true则忽略,反之false则支持 默认为false

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"  errorPage="error.jsp" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    int i= 10/0;
%>
</body>
</html>

error.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>错误页面</title>
</head>
<body>
errorMesg:
<% out.write(exception.getMessage());%>
</body>
</html>
web.xml配置error 页面
 <error-page>
  <error-code>500</error-code>
  <location>/error.jsp</location>
</error-page>

2. include

静态包含---<% include file=" "%>
把其他资源包含到当前页面

<% include file="/header.jsp"%>
<% include file="/footer.jsp"%>

动态包含 ---<jsp:include ></jsp:include>

<jsp:include page="/foorer"></jsp:include>

header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

我是是头部
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/header.jsp" %>
我是内容
<%@ include file="/footer.jsp" %>
footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
我是底部

</body>
</html>

3. taglib

作用:在jsp页面中导入jstl标签库。替换jsp中的java代码片段

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

jsp 动作---<jsp:action_name attribute="value" />

常见动作

动作 作用
<jsp:include > 动态包含
<jsp:forward> 请求转发
<jsp:param> 设置请求参数
<jsp:useBean> 创建一个对象
<jsp:setProperty> 给指定的对象属性赋值
<jsp:getProperty> 取出指定对象的属性值

<jsp:useBean id="stu1" class="com.itheima.entity.Student"></jsp:useBean>
     <jsp:setProperty property="name" name="stu1" value="jerry"/>
     <jsp:getProperty property="name" name="stu1"/>
     
 <!-- http://localhost:8080/test.jsp?name=123 -->
 <jsp:forward page="/7.jsp">
    <jsp:param value="123" name="name"/>
    <jsp:param value="333" name="pwd"/>
 </jsp:forward>

常见属性

所有的动作要素都有两个属性:id属性和scope属性。

JSP内置对象

JSP支持九个自动定义的变量:

对象 描述
request HttpServletRequest类的实例
response HttpServletResponse类的实例
out PrintWriter类的实例,用于把结果输出至网页上
session HttpSession类的实例
application ServletContext类的实例,与应用上下文有关
config ServletConfig类的实例
pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page 类似于Java类中的this关键字
Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象
上一篇下一篇

猜你喜欢

热点阅读