jsp基础语法

JSP的组成

静态内容、指令、表达式、小脚本、声明、注释

JSP的生命周期

用户发出index.jsp ,服务端判断是否是第一次请求,若是第一次请求,则tomcat中的JSP引擎中的文件转化成一个servlet,生成字节码文件,并执行jspinit()方法,然后再生成字节码文件,若不是第一次请求,则会直接访问生成字节码文件,解析执行,jspservice()方法就是处理用户请求的。

jspservice()方法处理客户端的请求,对于每一个请求,JSP引擎创建新的线程来处理,对于多个客户端,引擎会创建多个线程,提高并发量和响应时间。

脚本程序

脚本<%%>

表达式<%=%>

声明<!%%>

表达式<%=%> 不以分号结尾

中文编码

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

pageEncoding="UTF-8"%>

Jsp的页面元素

JSP指令

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

include指令 将一个外部的文件嵌入JSP中,同时解析这个JSP页面

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

Page指令

Language 指定JSP页面使用的脚本语言

Import 引用脚本语言中使用到的类文件

ContentType 指定JSP页面所采用的的编码方式

JSP注释

Html注释 客户端可见

JSP注释 <%--html注释--%> 客户端不可见

JSP脚本注释 // 单行注释 /**/多行注释 客户端不可见

jsp的脚本声明表达式

Javabean

简介:符合某种特定规范的java类,可以解决代码的重复编写,减少代码的冗余,提高维护性

Javabean的出现,使JSP页面使用了javaBean封装了数据,或者调用javabean的业务逻辑代码,提升了程序的可维护性。

设计原则:公有类,无参的公有构造方法,属性是私有的,getter和setter方法

JSP的动作元素:为请求处理阶段提供信息,动作遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性,可选的内容,与开始便签匹配的结束标签。

JSP动作

简介:符合某种特定规范的java类,可以解决代码的重复编写,减少代码的冗余,提高维护性

设计原则:公有类,无参的公有构造方法,属性是私有的,getter和setter方法

JSP的动作元素:为请求处理阶段提供信息,动作遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性,可选的内容,与开始便签匹配的结束标签。

JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。

id属性

id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。

scope属性

该属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。 scope属性有四个可能的值: (a) page, (b)request, (c)session, 和 (d) application。

jsp:include动作元素

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

jsp:useBean动作元素

jsp:useBean 动作用来加载一个将在JSP页面中使用的JavaBean。

引用javaBean文件

<jsp:useBean id="myusers" class="com.po.Users" scope="page">

</jsp:useBean>

jsp:setProperty动作元素

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

调用javaBean

  1. <jsp:setProperty property="*" name="myusers"/>根据表单自动匹配所有属性
  2. <jsp:setProperty property="username" name="myusers"/>根据表单匹配部分属性
  3. <jsp:setProperty property="username" name="myusers" value="wangwei"/>跟表单无关,通过手工赋值给属性

sp:setProperty动作有下面四个属性

jsp:getProperty动作元素

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

<jsp:getProperty property="password" name="myusers"/>使用getProperty方式获取用户名和密码

javabean的四个作用域范围

Page 仅在当前页面有效

Request 可以通过httpRequest.getAttribute()方法获取JavaBean对象

session 可以通过httpSession.getAttribute()方法获取JavaBean对象

application 可以通过application.getAttribute()方法获取JavaBean对象

jsp:forward 动作元素

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

jsp:elementjsp:attributejsp:body动作元素

jsp:elementjsp:attributejsp:body动作元素动态定义XML元素。动态是非常重要的,这就意味着XML元素在编译时是动态生成的而非静态。

jsp:text动作元素

jsp:text动作元素允许在JSP页面和文档中使用写入文本的模板

jsp:text模板数据</jsp:text>

include指令和动作的区别

forward动作

<jsp:forward page=”URL”/> 等同于服务器请求转发:

Request.getRequestDispather(“/url”).forward(request,response);

param动作

<jsp:param name=”参数名” value=”参数值”> 常与<jsp:forward >一起使用,作为其子标签,也可以修改参数值

JSP的内置对象

JSP以java为脚本语言,为了简化开发,提供了内置对象。

JSP的内置对象是WEB容器创建的一组对象,不使用new关键就可以使用的内置对象

常用内置对象 九大内置对象 out.request.response.session.application

Page.pageContext.exception.config

缓冲区 buffer 保存临时数据

Void println() 打印字符串

Void clear() 清除缓冲区的内容,在flush之后调用会抛出异常。

Void flush() 将缓冲区的内容输出到客户端

Int getBufferSize() 返回缓冲区以字节的大小,如不设缓冲区则为0

Int getremaining() 返回缓冲区还剩余多少可用

Boolean isAutoFlush() 返回缓冲区满时,是自动清空还是,抛出异常

Void close() 关闭输出流

表单处理

Get:以明文的方式提交数据,数据在URL中可以看到,最多不能超过2K,安全性低效率高,比如搜索查询。

Post:将用户的信息封装到HTML HEADER中,适合提交数据量大,安全性高的用户信息,如注册修改上传

JSP 读取表单数据

getParameter(): 使用 request.getParameter() 方法来获取表单参数的值。

getParameterValues(): 获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkbox类型

getParameterNames():该方法可以取得所有变量的名称,该方法返回一个Emumeration。

getInputStream():调用此方法来读取来自客户端的二进制数据流。

可读取URl和表单数据(get和post)

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

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

注意:

<%// 解决中文乱码的问题String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");

%>

读取所有表单参数

HttpServletRequest 的 getParameterNames() 来读取所有表单参数,该方法可以取得所有变量的名称,该方法返回一个枚举。

获取

  1. <%
  2. Enumeration paramNames = request.getParameterNames();
  3. while(paramNames.hasMoreElements()) {
  4. String paramName = (String)paramNames.nextElement();
  5. out.print("<tr><td>" + paramName + "</td>\n");
  6. String paramValue = request.getParameter(paramName);
  7. out.println("<td> " + paramValue + "</td></tr>\n");
  8. }
  9. %>

请求

  1. <form action="main.jsp" method="POST" target="_blank">
  2. <input type="checkbox" name="google" checked="checked" /> Google
  3. <input type="checkbox" name="runoob" /> 菜鸟教程
  4. <input type="checkbox" name="taobao" checked="checked" />淘宝
  5. <input type="submit" value="选择网站" />
  6. </form>

JavaWeb基础-Jsp基础语法的更多相关文章

  1. JavaWeb之 JSP基础

    什么是JSP JSP的全称是java server page, java服务页面.是提供java服务的页面~ 那么和Servlet有什么区别呢?JSP的页面既可以写java代码~也可以写html代码哦 ...

  2. JavaWeb chapter9 JSP基础

    1.  Servlet的缺陷 一个动态网页中,大部分内容都是HTML代码等固定不变的内容,编写和修改HTML非常不方便,令人厌恶: 部署Servlet是繁琐而且容易出错的任务:(Servlet3.0规 ...

  3. Jsp基础语法(由简入杂)

    JSP基础语法 一,JSP简介 Jsp是一个简化的Servlet设计,是在服务器端执行,他实现了再Java中使用HTML标签. Jsp是一种动态网页技术标准也是JAVAEE的标准 二,常见动态网站开发 ...

  4. JSP学习(一)JSP基础语法

    JSP基础语法 1.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素. JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. <%@ page language=&quo ...

  5. 新手学Html之JSP基础语法——入门(二)

    JSP基础语法 JSP注释 comment.jsp <%@ page language="java" contentType="text/html; charset ...

  6. JAVAWeb入门之JSP基础知识

    也是到了考试周,很多课都结了,准备去学点新东西.随后就开始自学JAVAWeb. 要学习JAVAWeb,首先需下面的知识: a)      HTML/CSS/JS(前端页面),XML,JSON,vue ...

  7. jsp基础知识(基本的语法及原理)

    jsp 语法分为三种不同的类型: (1) 编译器指令: 类如: <%@ page import="java.io.*"%> (2) 脚本语法: 指定的是java代码: ...

  8. JSP基础知识➣语法整理(二)

    A.脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达式,只要它们在脚本语言中是有效的. 脚本程序的语法格式:<% 代码片段 %>,但是不能包含文件的方法和变量的声明 B.J ...

  9. Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

    JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...

随机推荐

  1. 2017-2018-2 20165327 实验三《敏捷开发与XP实践》实验报告

    2017-2018-2 20165327 实验三<敏捷开发与XP实践>实验报告 实验三 <敏捷开发与XP实践> 一.实验报告封面 课程:Java程序设计 班级:1653 姓名: ...

  2. maven---->配置,指令,插件,使用

    maven是用于java的自动化构建工具. 1.下载:http://maven.apache.org/download.cgi 下载下面截图标红处的文件 然后直接解压可以得到文件夹,得到如下文件夹 不 ...

  3. 20181013xlVba计算优秀率及合格率

    Sub 计算高一优秀合格率() Dim Wb As Workbook Dim Sht As Worksheet Dim oSht As Worksheet Dim dOs As Object 'Out ...

  4. Vue.js的后端数据支持:使用Express建立app, 并使用MongoDB数据库。

    需要用到的backed tech stack: Node: JavaScript on the server/backend. That's basically what it is, but mor ...

  5. webpack+vue多入口环境搭建

    项目地址:https://pan.baidu.com/s/1c1Dflp2 使用前提:安装nodejs环境,webpack的配置官网的例子跟着跑一遍,会vue开发 研究webpack+vue研究了一个 ...

  6. 架构探险笔记6-ThreadLocal简介

    什么是ThreadLocal? ThreadLocal直译为“线程本地”或“本地线程”,如果真的这么认为,那就错了!其实它就是一个容器,用于存放线程的局部变量,应该叫ThreadLocalVariab ...

  7. 基于散列的集合 HashSet\HashMap\HashTable

    HashSet\HashMap\HashTable 1 基于散列的集合 2 元素会根据hashcode散列,因此,集合中元素的顺序不一定与插入的顺序一致. 3 根据equals方法与hashCode方 ...

  8. numpy学习:数据预处理

    待处理的数据:150*150的灰度图片,除分析目标外,背景已经抹0 需要实现的目标:背景数字0不变,对其余数字做一个归一化处理 对list处理可以用 a=list(set(a)) # 实现了去除重复元 ...

  9. hbase安装部署

    hbase的安装 ①cp /mnt/hgfs/xiazai/hbase-1.2.5-bin.tar.gz /data tar -xzvf  hbase-1.2.5-bin.tar.gz ②环境 sud ...

  10. springboot项目线程使用

    下面是一个demo: public class TestThread { private static int nThreads =Runtime.getRuntime().availableProc ...