JSP入门基础

  • JSP简介:JSP全称是Java Server Page,是sun公司发布的跨平台的技术标准,用于动态的web开发,是基于Java Servlet模型的视图层技术,JSP是Servlet的扩展。由JSP标记、HTML标记和java代码组成。
  • JSP运行原理:
  1. 当一个jsp文件第一次被请求时,jsp引擎把jsp文件转换成一个Servlet源文件即.java文件(jsp引擎本身也是一个Servlet),若不是第一次被请求跳转到第3步
  2. jsp引擎把转换成功的Servlet源文件编译成字节码文件
  3. 执行字节码文件,创建一个Servlet实例(创建Servlet实例时,jspInit()方法被自动调用,然后调用jspService()方法,jspService方法调用结束或出现错误时,jspDestroy()方法被调用)
  4. Servlet最后被标记,由gc回收释放内存
  • 访问一个jsp页面的过程:
  1. 客户端向服务器发送请求
  2. 服务器收到请求后加载jsp资源
  3. web服务器中的jsp引擎把被加载的jsp转化为Servlet源文件
  4. jsp引擎再把源文件转化为字节码并执行
  5. 服务器把执行结果返回给客户端,浏览器把结果显示出来
  • jsp用到的一些东西:JavaScript/CSS/Ajax/jQuery(搜索引擎中的自动补全就是这个的杰作)

之前说JSP页面由JSP标记、HTML标记和java代码组成。除了普通的html代码之外,嵌入jsp页面的其他成分主要有:脚本元素(js)、指令、动作

1、脚本用来嵌入java代码,将成为Servlet的一部分,jsp预定义了一组可以直接使用的变量如request/response/out/session/application/config/page-Context

2、jsp指令用来从整体上控制Servlet的结构

3、动作用来引入现有的组件或者控制jsp引擎的行为

 

  • 脚本:

1、jsp表达式<%=  ...  %>

有请求如localhost:8080/HelloWorld?message=you loss

<%=

request.getParameter(“message”)

%>

页面上打印出来的就是you loss

2、jsp脚本<%  ...  %>

<%

String str = "hello world";

out.println("hello world");

%>

3、jsp声明<%!  ...  %>

<%! code %>

4、jsp注释

<%-- 注释 --%>这个注释在jsp转换为Servlet时被自动忽略

<-- 注释 -->这个是html的注释,在转化为Servlet时会被包含进去

 

这里一般都会有个问题就是jsp脚本、声明、表达式有啥区别呢?

是这样,jsp脚本呢就是写java代码的地方,不推荐使用,毕竟现在都流行前后端分离,前端尽量用专业的前端语言工具;表达式看上去就是println的作用,但其实用处还有很多,比如说我们form提交的时候写action的时候要求像这样action="../login.jsp?id=<%= request.getParameter("id")%>",起到一个拼接的作用,这是与脚本println区别的地方。至于声明,其实也是写java代码的地方,但是声明语法(<%!   %>)一般被用做声明定义一些变量,方便在脚本(<%    %>)中使用的变量,当然了一个jsp页面中的声明只在这个页面中有效。jsp声明中的变量仅在jsp第一次被请求时初始化一次,一旦初始化结束,之后对这个声明的使用一直是这个值

 

  • 指令:

1、page指令

<%@ page ...>

page中的属性比较多这里就不一一赘述功能了,自行百度吧。合法的属性如下

import = //导入的包

contentType = “text/html;charset=UTF-8”

isThreadSafe = “true/false”

session = “true/false”

buffer = “size kb/none”

autoflush = “true/false”

extends = “***.class”

info =

errorPage = “url”

isErrorPage = “true/false”

language = “java”

 

2、include指令//在转化为Servlet时包含引入的文件

<%@ include file=”...” %>

ps:此处使用jsp:include动作可以在请求文件的时候再引入文件,不用包含在Servlet中

 

  • 动作:

1、jsp:include

2、jsp:useBean//声明创建一个bean实例

其他可能的属性:

scope = ”page/request/session/application”

type = ””

beanName = ””

3、jsp:setProperty//设置bean中的属性

name = ””

property = “”

param = “”

value = “”

4、jsp:getProperty//获得bean中的属性

5、jsp:plugin与applet有关

6、jsp:forward//转发

 

 

最后,说一下特别标签以及html5

html5中调整了一些标签,因为强调html只注重语义,css只注重样式,所以html中的有关于样式的标签将在html5中被废弃如

////,但是仍然给出了替代品,这些替代的样式标签尽量别用

-- 标签内的文字斜体

-- 加粗

-- 下划线

-- 删除线

标签在html5中被废弃了

 

 

你可能感兴趣的:(jsp)