6. JSP详解

6. JSP详解

1. 什么是JSP

全称为:Java Server Pages

Java服务器端页面,也和Serlvet一样,用于动态Web技术!

JSP中的内容就是html,但是能够嵌套java语言

HTML只给用户提供静态数据

2. JSP原理

服务器内部工作

tomcat中有一个work目录

IDEA中使用Tomcat的会在IDEA的tomcat中生产一个work目录

浏览器向服务器发送请求,不管访问什么资源,都是在访问Servlet

JSP最后也会被转化为一个Java类

JSP本质上就是一个Servlet

// 初始化

public void _jspInit(){

}

// 销毁

public void _jspDestroy(){

}

// JSPService

public void _jspService(.HttpServletRequest request,HttpServletResponse response){

}

判断请求

内置一些对象

3. JSP基础语法

JSP拥有一些扩充的语法

JSP表达式

<%--JSP表达式

作用:用来将程序的输出,输出到客户端

<%- 变量或者表达式%>

--%>

<%= new java.util.Date()%>

** JSP脚本片段**

<%--jsp脚本片段--%>

<%

int sum = 0;

for (int i = 1; i <=100 ;i++){

sum+=i;

out.println("

sum="+sumt"

%>

4. JSP声明

<%!

static {

system.out.println("Loading Servlet!");

private int globalvar = 0;

public void kuang){

system.out.printlnC"进入了方法!");

%>

JSP声明:会被编译到SP生成Java的类中!其他的,就会被生成到_jspService方法中!

在SP,嵌入Java代码即可!

JSP的注释,不会在客户端显示,HTML会显示

5.JSP指令

%@page args.... %>

‹%@include file=""%›

<%--@include会将两个页面合二次一--%>

‹%@include file="common/header. jsp"%>

网页主题

‹%@include file="common/footer. jsp"%>


<%--jSP标签

jsp:include: 拼接页面,本质还是三个

--%>

‹jsp: include page="/common/header. jsp"/>

网页主体

‹jsp: include page="/common/footer.jsp"/>

6. 九大内置对象

page:page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象。相当于this。

config:标识Servlet配置,类型:ServletConfig,api跟Servlet中的ServletConfig对象是一样的,能获取该servlet的一些配置信息,能够获取ServletContex

application:标识web应用上下文,类型:ServletContext,详情就看Servlet中的ServletContext的使用

request:请求对象, 类型:httpServletRequest

response:响应对象 类型:httpServletResponse

session:表示一次会话,在服务器端记录用户状信息的技术

out:输出响应体 类型:JspWriter

exception 表示发生异常对象,类型 Throwable,在上面我们介绍page指令中的一个errorPage属性时就有说到他

pageContext:表示 jsp页面上下文(jsp管理者) 类型:PageContext

标记了加粗的对象就是JSP独有的,其他的都是Servlet中的老东西。

<%--内置对象--%>

<%

pagecontext.setAttribute(s: "name1", o: "ha");//保存的数据只在一个页面中有效

request.setAttribute("name2", "shi"); //保存的数据只在一次请求中有效,请求转发会携带这个数据

session.setAttribute("name3","fei"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器

application.setAttribute(“name4","秦疆4号");//保存的数据只服务器中有效,从打开服务器到关闭服务器

%>

<%--脚本片段中的代码,会被原封不动生成到.JsP.java

要求:这里面的代码:必须保证Java语法的正确性

--%>

<%

//MpageContext取出,我们通过寻找的方式来

//从底层到高层(作用城):

String name1 = (String) pageContext. findAttribute ("name1");

String name2 = (String) pageContext. findAttribute ("name2");

String name3 = (String) pageContext. findAttribute ("name3");

String name4 = (String) pageContext. findAttribute("name4");

String name5 =(String) pagecontext.findAttribute( "name5");//不存在

%>

<%--使用EL表达式输出 $f}--%>

取出的值为:

${name1}

${name2}

${name3}

${name4}

<%=name5%>

7.JSP的四大作用域:page、request、session、application

这四大作用域,其实就是其九大内置对象中的四个,为什么说他们也是JSP的四大作用域呢?因为这四个对象都能存储数据,比如request.setAttribute()注意和request.setParameter()区分开来,一个是存储在域中的、一个是请求参数,session.setAttribute()、application其实就是SerlvetContext,自然也有setAttribute()方法。而page作用域的操作就需要依靠pageContext对象来进行了。在上面我们也有提到JSP的四大作用域,

page作用域:代表变量只能在当前页面上生效

request:代表变量能在一次请求中生效,一次请求可能包含一个页面,也可能包含多个页面,比如页面A请求转发到页面B

session:代表变量能在一次会话中生效,基本上就是能在web项目下都有效,session的使用也跟cookie有很大的关系。一般来说,只要浏览器不关闭,cookie就会一直生效,cookie生效,session的使用就不会受到影响。

application:代表变量能一个应用下(多个会话),在服务器下的多个项目之间都能够使用。比如baidu、wenku等共享帐号。

8.JSP标签、JSTL标签、EL表达式

<!-- JSTL表达式的依赖 -->

javax.servlet. jsp.jstl

‹artifactId>jstl-api

«version>1.2

<!-- standard标签库 -->

‹dependency>

taglibs

standard

‹version>1. 1.2

EL表达式:${}

*** 获取数据**

*** 执行运算**

*** 获取Web开发的常用对象**

JSP标签

jsptag

Title

<%-- jsp:include--%>

jsptag2

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

Title

jsp-tag2

<%--取出参数--%>

<%=request.getParameter("name")%>

<%=request.getParameter("age")%>

JSTL标签库

JSTL标签库的使用就是为了弥补HTML标签的不足;它自定义许多标签,可以供我们使用,标签的功能和Java代码一样!

核心标签(掌握部分)

核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:

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

格式化标签

SQL标签

XML标签

9.JavaBean

实体类

JavaBean有特定的写法:

* 必须要有一个无参构造

* 属性必须私有化

* 必须有对应的get/set方法

一般涌来和数据库的字段做映射 ORM

ORM:对象关系映射

* 表-->类

* 字段-->属性

* 行记录-->对象

相关推荐

1982年世界杯巴西队(1982年世界杯巴西队阵容名单)
365bet在线体育投注网

1982年世界杯巴西队(1982年世界杯巴西队阵容名单)

📅 08-23 👁️ 7879
含东字的成语,东字词语霸气
365平台app下载手机版

含东字的成语,东字词语霸气

📅 07-10 👁️ 5786
Maven–如何下载JSONObject相关依赖架包
365bet开户网址

Maven–如何下载JSONObject相关依赖架包

📅 07-20 👁️ 2416
日本海淘常用购物网站有哪些?日本海淘热门购物网站推荐汇总!
“尾巴”到底是读“yiba”还是“weiba”?
365bet在线体育投注网

“尾巴”到底是读“yiba”还是“weiba”?

📅 09-15 👁️ 2633
猫咪瞳孔放大怎么回事, 是生理反应还是情绪变化?
365bet在线体育投注网

猫咪瞳孔放大怎么回事, 是生理反应还是情绪变化?

📅 08-06 👁️ 962
五五开是什么意(五五开这个词怎么出来的)
365平台app下载手机版

五五开是什么意(五五开这个词怎么出来的)

📅 09-14 👁️ 1696
楚乔传燕洵是怎么逃出京城的?燕洵什么时候回燕北的?
365平台app下载手机版

楚乔传燕洵是怎么逃出京城的?燕洵什么时候回燕北的?

📅 06-30 👁️ 2663
林更新原名叫什么(林更新别名叫什么)
365bet开户网址

林更新原名叫什么(林更新别名叫什么)

📅 08-20 👁️ 1875