Web开发

首页 » 常识 » 诊断 » 厉害了清华学霸梳理的JSP基础知识点,
TUhjnbcbe - 2022/12/30 8:50:00

Hello,今天给各位童鞋们分享的是JSP,赶紧拿出小本子记下来吧

一、课程目标

servlet注解开发

jsp原理

jsp标签指令

jsp脚本书写

二、servlet注解开发

servlet的jar包是由tomcat进行提供,用于处理客户端发送至服务器的请求,随着技术的不断发展进行版本的更新,现一般使用的版本为3.0之前版本与3.0之后的版本,功能是一样的,只不过对配置与书写上进行了更新,但是实际使用时根据不同的需求进行选择,本质执行原理是一样的

servlet3.0为了简化配置提供了相应的注解开发的功能

语法:

书写在类声明之上。标注当前类为servlet指定servlet的name与url

name可以省略默认会使用当前类名当做name

urlPatterns是数组形式的地址,可以书写多个地址执行同一个servlet

简写

当只进行url配置且,url只有一个时可以简化注解的书写

WebServlet(/my)

注意:注解形式虽然简化了配置,但使得项目进行维护时更加繁琐,所以在实际开发过程中根据实际需求进行书写。本质注解开发与配置开发是一样的,只不过在加载时发现相应注解后会执行相应的配置

三、jsp

在使用servlet返回页面过程中,虽然可以返回动态页面,但是如果页面拥有各种样式与功能,那么servlet中的代码就会很多,而且会出现在java中书写html字符串的形式,对于后台开发很不友好,所以,开发出了jsp(javaserverpage)java书写的服务页面用于解决这个问题.

jsp的执行流程

客户端请求jsp,在第一次请求时,服务器会将jsp解析为servlet,创建servlet进行处理,再次请求时如果jsp已经被解析且没有被修改,则直接返回之前解析的servlet进行处理,否则重写解析

3.1创建jsp页面

开发工具一般都提供jsp页面的创建

sp通过特殊的语法,将servlet变为了可以直接书写html代码的文件,只需要在首行标识这本质是一个servlet页面即可,之后可以完全按照html页面书写的语法进行书写,在执行过程中会自动创建输出流对象将html代码输出至页面

可以让前台将静态页面书写完毕后通过添加%

pagelanguage=“java”contentType=“text/html;charset=UTF-8”pageEncoding=“UTF-8”%指令的形式使其变为可执行的java代码并书写相应的java命令

3.2page指令

书写在jsp首行用于jsp页面设置的指令,拥有很多的属性

语法:

%

page属性1=属性值属性2=属性值1,属性值2…属性n=属性值n%

在jsp中拥有大量的指令操作通过设置完成不同的功能

3.3脚本

由于jsp是通特殊语法可以直接书写html代码并通过out对象输出到客户端,但是本质是java代码,为了与直接输出到客户端的html代码区分,所以需要使用脚本块将书写在jsp页面的java代码进行包裹,这样在将html页面输出到客户端的过程中,就不会讲java代码当做html代码进行输出

语法:

%java代码%

虽然jsp本质是servlet可以直接书写java代码进行逻辑操作,但是页面出现大量的java代码会影响书写,所以一般在进行书写时都会将逻辑操作交由servlet进行处理

3.4方法声明

语法:

由于jsp可以理解为servlet中的某一个请求,所以不能直接进行方法的声明,需要通过特殊的声明语法

3.5其他指令

3.5.1编译指令

指的是书写在jsp页面中不会进行直接显示与功能的指令,在jsp被请求编译时进行使用的指令

语法格式:

%

deriectiveattr1=val1attr2=val2......%

%

指令属性名=值属性名=值属性名=值%

page指令

主要设置jsp相关属性,如:页面编码、缓存大小、错误处理页面等,page指令中除了import属性之外,其他属性只能出现一次;

%

pagelanguage=javacontentType=text/html,ISO--1import=java.util.*,java.sql.*,java.io.*

session=true

flasebuffer=none

8kb

sizekbautoFlush=true

falseinfo=一段字符串内容

pageEncoding=ISO--1%

include指令

在jsp开发当中,为了避免代码冗余(重复),可以把jsp开发当中多次使用的功能代码封装成一个独立的jsp文件。

include指令:用于引入其他JSP页面,如果使用include指令引入了其他JSP页面,那么JSP引擎将把这两个JSP翻译成一个Servlet,所以include指令引入通常也成为静态引入。

%

includefile=“被包含组件的绝对URL或相对URL%

被引入的文件必须遵循JSP语法。被引入的文件可以是任意扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见名知意,JSP规范建议使用.jspf(JSPfragments)作为静态引入文件的扩展名。由于使用include指明将会涉及到2个JSP页面,并会把JSO翻译成一个Servlet,所以这两个JSP页面的指令不能冲突(pageEncoding和导包除外)

就是在jsp编译之前将指定的jsp页面加载到当前页面中,相当于将指定jsp页面代码复制到指定位置

taglib指令

通过使用taglib指令,开发者可以导入其他的标签库,来完成特定的功能。

%

taglibprefix=“c”uri=“
1
查看完整版本: 厉害了清华学霸梳理的JSP基础知识点,