JSP 基础(二)

简介: 五 注释  5.1 JSP注释      5.2 HTML注释     5.3 Java注释   六 JSP指令 在JSP中有三种类型的指令 6.1 page指令为当前页面提供处理命令    语法格式:                                         ...

五 注释 

5.1 JSP注释     <%--注释内容--%>

5.2 HTML注释    <!--注释内容-->

5.3 Java注释  

六 JSP指令

在JSP中有三种类型的指令

6.1 page指令为当前页面提供处理命令

   语法格式:<%@ page  %>

                                                                                 page指令属性

属性名

默认值

language

脚本语言名称

"java"

Info

网页信息

contentType

MIME类型和JSP编码

"text/html;charset=ISO-8859-1"

import

类和包

none

buffer

缓冲区大小

8192

autoFlush

缓冲满,刷新还是抛出异常

"true"

session

访问页面是否创建会话

"true"

isThreadSafe

线程是否安全

"true"

errorPage

URL

none

isErrorPage

布尔值

"false"

示例1:

1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" isThreadSafe="false" autoFlush="true"%>
2 <%@ page errorPage="error.jsp"  contentType="text/html; charset=utf-8" session="true" %>

示例2:

index.jsp;

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" isThreadSafe="false" autoFlush="true"%>
 2 <%@ page errorPage="error.jsp"  contentType="text/html; charset=utf-8" session="true" %>
 3 <% 
 4 String path = request.getContextPath();
 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 6 int num=2/0;  //错误!
 7 
 8 %>
 9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
10 <html>
11   <head>
12     <base href="<%=basePath%>">    
13     <title>My JSP 'index.jsp' starting page</title>
14     
15     <meta http-equiv="pragma" content="no-cache">
16     <meta http-equiv="cache-control" content="no-cache">
17     <meta http-equiv="expires" content="0">    
18     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
19     <meta http-equiv="description" content="This is my page">
20     <!--
21     <link rel="stylesheet" type="text/css" href="styles.css">
22     -->
23 
24   </head>  
25   <body>
26    Index jsp
27   </body>
28 </html>
error.jsp
 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" isErrorPage="true"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>My JSP 'error.jsp' starting page</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>
24   
25   <body>
26    页面访问出错!
27   </body>
28 </html>

 

 当访问index.jsp的时候就先显示:

因为设置了出错的页面(<%@ page errorPage="error.jsp" %> <%@ page isErrorPage="true"%>)

6.2 include指令用于把另一个文件包含在JSP中

语法格式:<% @ include file=" "%>

示例:

 

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" autoFlush="true"%>
 2 <%@ page errorPage="error.jsp"  contentType="text/html; charset=utf-8"  %>
 3 <% 
 4 String path = request.getContextPath();
 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 6 
 7 %>
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <html>
10   <head>
11     <base href="<%=basePath%>">    
12     <title>My JSP 'index.jsp' starting page</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>  
24   <body>
25   <%@ include  file="header.jsp" %>
26 
27   </body>
28 </html>
29 
30 <!--header.jsp-->
31 <%@ page pageEncoding="utf-8" %>
32 <div style="height:100px;background-color: blue">header.jsp
33 </div>

 

访问页面出现:

 

include指令是一个静态的页面包含,是把被包含的文件拷贝到当前页面来一起编译。

 

6.3 taglib指令指定如何包含和访问自定义标签库

七 JSP标准动作

7.1 <jsp:include>动作

  语法格式:<jsp:include page="" flush=""/>      

  page:表示一个相对路径。可以是一个静态页面的问价名。也可以是一个动态的相对路径值。

  flush:为真时,当缓冲区满时会自动清空。注意:这个属性是必须属性,而且值只能是true。

 <jsp:include>动作实现的则是一种动态的包含,他是把显示的结果插入到当前的页面来显示。

示例:

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" autoFlush="true"%>
 2 <%@ page errorPage="error.jsp"  contentType="text/html; charset=utf-8"  %>
 3 <% 
 4 String path = request.getContextPath();
 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 6 
 7 %>
 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 9 <html>
10   <head>
11     <base href="<%=basePath%>">    
12     <title>My JSP 'index.jsp' starting page</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>  
24   <body>
25 <jsp:include page="header.jsp" flush="true"/>
26 <jsp:include page="nav.html" flush="true"/>
27 <div style="height:200px;background-color: orange;">main.jsp</div>
28 
29 
30 
31   </body>
32 </html>

 

 1 <div style="height:100px; background-color:green ">导航栏</div> 

访问页面出现的:

在nav.html出现了文字的乱码!

需要在web.xml设置:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 3   <display-name>JSP</display-name>
 4   <welcome-file-list>
 5     <welcome-file>index.html</welcome-file>
 6     <welcome-file>index.htm</welcome-file>
 7     <welcome-file>index.jsp</welcome-file>
 8     <welcome-file>default.html</welcome-file>
 9     <welcome-file>default.htm</welcome-file>
10     <welcome-file>default.jsp</welcome-file>
11   </welcome-file-list>
12   <!-- 设置静态页面的字符编码 -->
13    <jsp-config>
14     <jsp-property-group>
15       <url-pattern>*.html</url-pattern>
16       <page-encoding>utf-8</page-encoding>    
17     </jsp-property-group>
18   
19   </jsp-config> 
20 </web-app>

 

现在访问页面:

7.2 <jsp:forword>动作

 语法格式:

<jsp:forword page="" />      

当程序运行到<jsp:forword>语句时,控制权就交给了另一个JSP.(相当于转发)

其与<jsp:include page="" flush=""/> 的用法相同的。 

八 JSP隐式对象

JSP提供了九个隐式对象

 

对象名

描述

作用域

request

代表与请求相关的HttpServletRequest对象

request

response

代表与响应相关的HttpServletResponse对象

page

pageContext

代表封装请求某个JSP页面时请求环境的pageContext对象

page

session

代表特定用户请求会话的HttpSession对象。该对象只有在JSP页面参与一个HTTP会话时才有意义

session

application

代表Web应用程序的ServletContext对象

application

out

代表与响应输出流相关的JspWriter对象

page

config

代表JSP 页面的Servlet相关的ServletConfig对象

page

page

等于Java编程语言中的this变量

page

exception

代表JSP页面抛出的Trowable对象。这个对象只能在JSP错误页面中使用

page

 下一章节对JSP提供了九个隐式对象一一介绍!

 

相关文章
|
7月前
|
Java 应用服务中间件
jsp技术
jsp技术
117 0
|
Java 应用服务中间件
|
安全 Java 容器
JSP - 基础篇3
JSP - 基础篇3
92 0
JSP - 基础篇3
|
Java Linux API
JSP - 基础篇2
JSP - 基础篇2
150 0
JSP - 基础篇2
|
Java
JSP - 基础篇1
JSP - 基础篇1
73 0
JSP - 基础篇1
|
前端开发 JavaScript Java
jsp技术
我是一名Java后台学习者,但是后台程序员也需要掌握一定的前端技术。虽然说现在前端基本上是react、vue、angular三分天下,但是作为一名Java程序员,如果说不会jsp,那未免有点说不过去。接下来就了解一下jsp技术。
 jsp技术
|
XML JSON 前端开发
2020年了,还需要学习JSP吗?
2020年了,还需要学JSP吗?我相信现在还是在大学的同学肯定会有这个疑问。
674 0
2020年了,还需要学习JSP吗?
|
Java
8.JSP基础
1.Servlet与JSP关系      JSP工作原理:   一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet JSP引擎使用javac把转换成的servlet的源文件编译成相应的class文件对每一个请求,JSP引擎创建一个新的线程来处理请求。
1192 0
|
Java 容器 前端开发
JSP基础与提高(一)
JSP基础 JSP的由来 1.1. 为什么有JSP规范   Servlet技术产生以后,在使用过程中存在一个很大的问题,即为了表现页面的效果而需要输出大量的HTML标签,这些标签在Servlet中表现为一个个的字符串常量。
1518 0
|
Web App开发 Java 容器