思维导图

java中jsp写的是什么 jsp中的java代码_java代码


一、JSP简介

1.1 什么是JSP?

  jsp的全称为:java server pages(翻译:java服务器页面), 从用户角度去看待 ,jsp就只是一个网页 ,但是作为程序员来看的话 , jsp其实是一个java类, 它继承了servlet,所以可以直接说jsp 就是一个Servlet.二者比较大的区别就是,在servlet中以java代码为主,而在jsp中主要以HTML代码为主,其中包含了一部分的java代码。

1.2 JSP的作用

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

1.3 JSP的语法格式

  <% 这里写java代码 %>

二、JSP三大指令

2.1 page指令

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

2.1.1 page属性表

属性

定义

language

指定JSP页面用什么语言来编译,目前只支持JAVA语言。默认为JAVA

contentType

这个文件是什么类型,告诉浏览器我是什么内容类型,以及使用什么编码来解析这个文件,类型一般是text/html

pageEncoding

指明编码方式

extends

指定jsp翻译成java文件后,继承的父类是谁

import

导包使用的

session=“true or false"

控制在这个jsp页面里面,能够直接使用session对象。

errorPage=“path”

用于指定错误的时候跑到哪一个页面去

isErrorPage

声明某一个页面到底是不是错误的页面,被声明的页面可以使用Exception。

isThreadSafe=”true/false”

是否支持多线程

autoFlush=”true/false”

决定输出流的缓冲区慢了后是否需要自动清除,缓冲区慢了后会产生异常错误(Exception).默认为true

buffer=”none/size in kb”

决定输出流(Input stream)是否又缓冲区。默认为8kb

isELLgnored=”true/false”

表示是否在此JSP页面中EL表达式。true则忽略,false则支持。默认为false

2.2 include 指令

  包含另外一个jsp的内容进来,它的实现原理就是把另外一个页面的所有内容拿过来一起输出。 所有的标签元素都包含进来。

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

下面是包含test01.jsp的test01.jsp文件在服务器的工作空间中的源码,从源码就可以看出它的工作原理

java中jsp写的是什么 jsp中的java代码_jsp_02

2.3 taglib指令

  在JSP页面中使用第三方的标签库时,需要使用taglib指令来“导包”,我们在页面上用到JSTL的时候就需要使用这个指令来引入标签库。
<%@ taglib prefix="" uri=""%>

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

三、JSP的动作标签

下面我只记录比较常用的三个标签:
1、<jsp:include page=""></jsp:include>

<jsp:include page=“other02.jsp”></jsp:include>


包含指定的页面, 这里是动态包含。 也就是不把包含的页面所有元素标签全部拿过来输出,而是把它的运行结果拿过来。

2、<jsp:param value="" name=""/>

意思是: 在包含某个页面的时候,或者在跳转某个页面的时候,加入这个参数。

<jsp:forward page=“other02.jsp”>
 <jsp:param value=“beijing” name=“address”/>
 </jsp:forward>


在other02.jsp中获取参数

收到的参数是:

<%= request.getParameter(“address”)%>

3、<jsp:forward page=""></jsp:forward>

前往哪一个页面。

<%
   //请求转发
   request.getRequestDispatcher(“other02.jsp”).forward(request, response);
 %>

四、JSP的九个内置对象

所谓内置对象,就是我们可以直接在jsp页面中使用这些对象。 不用创建。

java中jsp写的是什么 jsp中的java代码_java代码_03

4.1、四个作用域对象

作用域 : 表示这些对象可以存值,他们的取值范围有限定。 setAttribute 和 getAttribute
分别是:

pageContext、request、session、application

作用域范围大小:

pageContext – request — session – application

4.1.1 四个作用域的使用

使用作用域来存储数据<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")%>

4.1.2 四个作用域的区别

作用域对象

所属类型

定义

pageContext

PageContext

作用域仅限于当前的页面

request

HttpServletRequest

作用域仅限于一次请求, 只要服务器对该请求做出了响应。 这个域中存的值就没有了。

session

HttpSession

作用域限于一次会话(多次请求与响应) 当中。

application

ServletContext

整个工程都可以访问, 服务器关闭后就不能访问了。

4.2、其余五个内置对象

对象			所属类型
--------------------------
out		     【JspWriter】
response     【HttpServletResponse】
exception    【Throwable】
page	     【Object】 ---就是这个jsp翻译成的java类的实例对象
config       【ServletConfig】

  重点强调,其实我觉得jsp,el,jstl这些估计很快就会被完全淘汰了,因为现在主流的开发模式是实现前后端的分离开发,像这些在页面上还嵌套着开发语言的基本是日落西山了,现在的主流框架和html、jq、ajax等已经可以让我们实现前后端的代码分离了,所以学习这些作为了解就好了。个人观点!