蓝旭工作室2020后端第三次培训

JSP以及JAVAweb项目新建

JSP简介

JSP全称为Java Server Pages,其根本是一个简化的Servlet设计,它实现了在Java当中使用HTML标签。JSP是一种动态网页技术标准也是JAVAEE的标准。JSP与Servlet一样,是在服务端执行的。

JSP页面元素

蓝旭工作室2020后端第三次培训_第1张图片

JSP指令

page指令:通常位于JSP页面的顶端,同一个页面可以有多个page指令。

include指令:将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句。

taglib指令:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。

page指令

Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。

<%@ page attribute="value" %>
属性 描述 默认值
language 指定JSP页面使用脚本语言 java
import 通过该属性来引用脚本语言中使用到的类文件
contentType 用来指定JSP页面所采用的编码方式 text/html,ISO-8859-1
include指令

JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。

<%@ include file="文件相对 url 地址" %>
Taglib指令

JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。

<%@ taglib uri="uri" prefix="prefixOfTag" %>

JSP语法

JSP页面注释

HTML的注释:

<!-- HTML注释 --> //HTML注释,通过浏览器查看网页源代码时可以看见注释内容

JSP的注释:

<%-- 注释 --%> //JSP注释,注释内容不会被发送至浏览器甚至不会被编译

JSP脚本注释:

//单行注释
/* */多行注释
JSP脚本程序

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

<% out.println("Your IP address is " + request.getRemoteAddr()); %>
JSP声明

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

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

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

<%= 表达式 %>
JSP内置对象

JSP内置对象是web容器创建的一组对象,不使用new就可以使用的·内置对象。
蓝旭工作室2020后端第三次培训_第2张图片

out对象

out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。
JspWriter类包含了大部分java.io.PrintWriter类中的方法。

request对象

request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。
request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。

常用方法:String getParameter(String name)

response对象

response对象是javax.servlet.http.HttpServletResponse类的实例。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。
response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。

常用方法:sendRedirect(java.lang.String location) 重新定向客户端请求

get和post的区别

<form action="执行动作页面" method="提交方法"> </form>

表单有两种提交方式:get和post

  1. get:以明文的方式通过RUL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB.安全性较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。
  2. post:将用户提交的信息封装在HTML HEADER内。适合提交数据量大,安全性高的用户信息。

请求转发与请求重定向

请求重定向:客户端行为,response.sendRedirect(),从本质讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址不会改变。

请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp),是一次请求,转发后请求对象会保存,地址栏URL地址不会改变。

session对象

什么是session

  • session表示客户端与服务器的一次会话。
  • Web中session指的是用户在浏览某个网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所经历的过程。
  • session是一个时间概念。

在服务器内存中保存着不同用户的session。

session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为。session对象用来跟踪在各个客户端请求间的会话。

常用方法:

  • public Object setAttribute(String name,Object value)使用指定名称将对象绑定到此会话
  • public Object getAttribute(String name)返回于此会话中指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
  • public String getId()返回SESSION创建时JSP引擎为它设置的唯一ID号

session的生命周期(可以作为预习的一个小任务)

application对象

application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext 类的实例。这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。

config对象

config对象是 javax.servlet.ServletConfig 类的实例,直接包装了servlet的ServletConfig类的对象。这个对象允许开发者访问Servlet或者JSP引擎的初始化参数,比如文件路径等。

pageContext 对象

pageContext对象是javax.servlet.jsp.PageContext 类的实例,用来代表整个JSP页面。这个对象主要用来访问页面信息,同时过滤掉大部分实现细节。这个对象存储了request对象和response对象的引用。application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出。pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL,页面scope等。PageContext类定义了一些字段,包括PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE, APPLICATION_SCOPE。

page 对象

这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表。
page 对象就是this对象的同义词。

exception 对象

exception 对象包装了从先前页面中抛出的异常信息。它通常被用来产生对出错条件的适当响应。

Javabean

Javabeans就是符合某种特定的规范的java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。
蓝旭工作室2020后端第三次培训_第3张图片

Javabean示例

package com.bluemsun;

public class Student {
     
    private String studentName;
    private Integer age;
    private String gender;

    public String getStudentName() {
     
        return studentName;
    }

    public void setStudentName(String studentName) {
     
        this.studentName = studentName;
    }

    public Integer getAge() {
     
        return age;
    }

    public void setAge(Integer age) {
     
        this.age = age;
    }

    public String getGender() {
     
        return gender;
    }

    public void setGender(String gender) {
     
        this.gender = gender;
    }
}

JSP动作元素

动作元素

jsp:include动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。

<jsp:include page="相对 URL 地址"/>

include指令和动作的区别

include指令 jsp:include动作
语法格式 <%@ include file=" "%>
发生作用的时间 页面转换期间 请求期间
包含的内容 文件的实际内容 页面的输出
转换成的Servlet 主页面和包含页面转换成一个Servlet 主页面和包含页面转换成独立的Servlet
编译时间 较慢 较快
执行时间 稍快 较慢
动作元素

jsp:useBean 动作用来加载一个将在JSP页面中使用的JavaBean。这个功能非常有用,因为它使得我们可以发挥 Java 组件复用的优势。

<jsp:useBean id="name" class="package.class" />
动作元素

jsp:setProperty用来设置已经实例化的Bean对象的属性

<jsp:setProperty name="myName" property="someProperty" value="someValue" param="someParam"/>
动作元素

jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出。

<jsp:getProperty name="myName" property="someProperty" .../>
动作元素

jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。

<jsp:forward page="相对 URL 地址" />

你可能感兴趣的:(jsp,java)