JSP全名是Java Server Page,它是建立在Servlet规范之上的动态网页开发技术。在JSP文件中,HTML代码与Java代码共同存在。Html代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。
  
  例:
  
  <%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
  
  <%
  
  String path =request.getContextPath();
  
  String basePath request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  
  %>
  
  <!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">
  
  <html>
  
  <head>
  
  <base href="<%=basePath%>">
  
  <title>My JSP 'simple.jsp' starting page</title>
  
  <meta http-equiv="pragma" content="no-cache">
  
  <meta http-equiv="cache-control" content="no-cache">
  
  <meta http-equiv="expires" content="0">
  
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  
  <meta http-equiv="description" content="This is mypage">
  
  <!--
  
  <link rel="stylesheet"type="text/css" href="styles.css">
  
  -->
  
  </head>
  
  <body>
  
  当前访问时间是:
  
  <%
  
  out.print(newjava.util.Date().toLocaleString());
  
  %>
  
  </body>
  
  </html>
  
  2.jsp运行原理
  
  1.servlet运行原理:首先Servlet运行时需要在web.xml配置文件中查找匹配的,然后将请求发给指定的Servlet程序去处理。
  
  Jsp运行有的是:JSP则不需要在web.xml配置,因为在Tomcat服务器的web.xml中实现了JSP的相关配置.
  
  <servlet>
  
  <servlet-name>jsp</servlet-name>
  
  <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
  
  <init-param>
  
  <param-name>fork</param-name>
  
  <param-value>false</param-value>
  
  </init-param>
  
  <init-param>
  
  <param-name>xpoweredBy</param-name>
  
  <param-value>false</param-value>
  
  </init-param>
  
  <load-on-startup>3</load-on-startup>
  
  </servlet>
  
  <servlet-mapping>
  
  <servlet-name>jsp</servlet-name>
  
  <url-pattern>*.jsp</url-pattern>
  
  </servlet-mapping>
  
  <servlet-mapping>
  
  <servlet-name>jsp</servlet-name>
  
  <url-pattern>www.yigouyule2.cn.jspx</url-pattern>
  
  </servlet-mapping>
  
  2.其实JSP文件也可以像Servlet程序一样,在web.xml文件中进行注册和映射虚拟路径。注册JSP页面的方式与Servlet类似,只需将元素修改为元素即可。
  
  <servlet>
  
  <servlet-name>SimpleServlet</servlet-name>
  
  <jsp-file>/simple.jsp</jsp-file>
  
  </servlet>
  
  <servlet-mapping>
  
  <servlet-name>SimpleServlet</servlet-name>
  
  <url-pattern>/SimpleServlet<www.michenggw.com /url-pattern>
  
  </servlet-mapping>
  
  3.jsp所生成的servlet代码
  
  当用户第一次访问JSP页面时,该页面都会被JspServlet翻译成一个Servlet源文件,然后将源文件编译为.class文件.
  
  myeclipse生成的源码:Servlet源文件和.class文件都放在“tomcat安装目录/work/Catalina/localhost/应用名/”目录下。
  
  idea生成的源码:C:\Users\Administrator.IntelliJIdea2017.3\system\tomcat\Tomcat_8_0_47_demo1\work\Catalina\localhost\ROOT\org\apache\jsp
  
  3.jsp基本语法
  
  1.JSP模板元素
  
  JSP页面中的静态HTML内容称之为JSP模版元素。JSP模版元素定义了页面的结构和外观。
  
  2.Jsp脚本
  
  (1) <%=expression%>www.gcyl152.com:JSP表达式
  
  JSP表达式(expression)用于将程序数据输出到客户端,数据封装在“<%=” 开头 “%>”结尾的标记中。
  
  然后针对JSP表达式的使用,重点讲解以下几点:
  
  l 表达式将要输出的变量或者表达式直接封装在“<%”和“%>”标记中。
  
  l 表达式中的变量或表达式的计算结果将被转换成一个字符串,然后插入JSP页面输出结果的相应位置处。
  
  l JSP表达式中的变量或表达式后面不能有分号(;)
  
  (2)JSP脚本片段
  
  JSP脚本片断是指嵌套在<% 和%>之中的一条或多条Java程序代码,这些Java代码必须严格遵守Java语法规范,否则编译会报错。
  
  然后针对JSP脚本片段的使用,重点讲解以下两点:
  
  l JSP脚本片断是嵌套在<% 和 %>之中的Java程序代码,必须严格遵守Java语法规范,否则编译会报错。每个执行语句后都使用分号(;)结束。
  
  l 单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句。
  
  例:
  
  标题党
  
  <%int x=3;
  
  Out.println(x);
  
  %>
  
  一个jsp页面中,可以出现多个脚本片段,在两个或者多个脚本片段之间可以嵌套文本、html标记等。
  
  例:<%int x www.dfgjyl.cn=3;
  
  %>
  
  标题党
  
  <% Out.println(x);
  
  %>
  
  (3)JSP声明
  
  当JSP页面被翻译成Servlet程序时,JSP中包含的脚本片段、表达式、模板元素都将转换为Servlet中_jspService()方法的程序代码。这时,JSP脚本片段中定义的变量都将成为_jspService()方法中的局部变量,而JSP脚本片段中定义的方法都将插入_jspService()方法,从而会出现程序的方法再定义方法,这样的语法是错误的。
  
  为了解决上述问题,在JSP技术中提供了声明,以“<%!”开始,以“%>”结束。
  
  <%!static{
  
  System.out.println(“static code block”);} %>
  
  (4)JSP注释
  
  <%--注释信息--%>
  
  <%@ page language="java"contentType="text/html; charset=UTF-8"%>
  
  <html>
  
  <head>
  
  <title>Insert title www.dfgjpt.com here</title>
  
  </head>
  
  <body>
  
  <%-- 这个是注释内容--%>
  
  </body>
  
  </html>
  
  注释信息不会打印在客户端
  
  jsp注释与html注释的区别:是否打印在客户端
  
  4.JSP 指令
  
  为了设置JSP页面中的一些信息,SUN公司提供了JSP指令。 JSP 2.0中共定义了page、include和taglib三种指令
  
  1.page指令
  
  在JSP页面中,经常需要对页面的某些特性进行描述,例如,页面的编码方式,JSP页面采用的语言等,这时,可以通过page指令来实现
  
  <%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>
  
  pageEncoding指定了jsp页面是采用了什么编码方式,与当前页面的编码方式一定要一致。当前页面的编码可以通过右键来查看。
  
  ContentType:设置的是响应编码。
  
  这两个可以一致,也可以不一致。如果只设置一个的话,那么另外一个会和设置的一样。
  
  Import:导包,可以重复出现
  
  errorPage 指定错误页面
  
  例:page.jsp
  
  <%@ page language=www.mingcheng178.com"java" contentType="text/html; charset=UTF-8"%>
  
  <html>
  
  <head>
  
  <title>Insert titlehere</title>
  
  </head>
  
  <body>
  
  <%
  
  int a=1/0;
  
  %>
  
  </body>
  
  </html>
  
  此时会出现错误
  
  在page指令中加入errorPage=“error.jsp”
  
  <%@ page language="java" contentType="text/html; charset=UTF-8" errorPage="error.jsp"%>
  
  Web.xml中配置通用的错误页面
  
  <error-page>
  
  <error-code>404</error-code>
  
  <location>/404.jsp</location>
  
  </error-page>
  
  <error-page>
  
  <error-code>500</error-code>
  
  <location>/500.jsp</location>
  
  </error-page>
  
  注意:1.如果设置了jsp页面的errorPage属性,那么在web.xml文件中设置的异常错误处理将对该页面不起作用
  
  2.使用ie浏览器测试时,页面可能会无法显示出错误信息,这时,单击”IE工具”-“Internet选项”-“高级”命令,取消勾选选项“显示友好http错误提示”复选框。
  
  2.include指令
  
  在JSP页面静态包含一个文件,例HTML文件,文本文件等,可以通过include指令来实现
  
  <%@ page language="java"contentType="text/html;charset=UTF-8"%>
  
  <html>
  
  <head>
  
  <title>欢迎你</title>
  
  </head>
  
  <body>
  
  欢迎你,现在的时间是:
  
  <%@ include file="simple.jsp"%>
  
  </body>
  
  </html>
  
  注意:
  
  1.被引入的文件必须遵循jsp语法,其中的内容可以包含静态html,jsp脚本元素和jsp指令等普通jsp页面所具有的一切内容。
  
  2.除了指令元素之外,被引入的文件中的其他元素都被转换成相应的java源代码,然后插入当前jsp页面所翻译成的Servlet源文件中,插入位置与include指令在当前jsp页面中的位置保持一致。这两个相当于源码放在一块进行编译。
  
  3.file属性的设置必须使用相对路径,如果以”/”开头表示相对于Web应用程序的根目录,否则,相对于当前文件。

12.jsp概述及指令的更多相关文章

  1. 开涛spring3(12.1) - 零配置 之 12.1 概述

    12.1  概述 12.1.1  什么是零配置 在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB-INF/lib文件夹下,jsp文件放到WEB-INF/jsp文件夹下,web ...

  2. JavaWeb(三)JSP概述

    一.JSP概述 1.1.JSP简介 一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束.JSP是一种Java servlet,主要用于实现 ...

  3. JSP中三大指令

    JSP指令概述 JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的.  JSP中的指令共有三个:page. ...

  4. 一、 JSP概述 二、JSP的语法结构 三、JSP内置对象

    一.JSP概述###<1>概念 java服务器页面 可以编写动态页面 其内部是以HTML标签为主,可以在HTML标签嵌套java代码 jsp文件以.jsp为后缀 jsp本质上就是一个Ser ...

  5. JSP基础--三大指令

    JSP指令 1       JSP指令概述 JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的. JSP中 ...

  6. Jsp语法、指令及动作元素

    一.JSP的语法 1.JSP的模板元素:(先写HTML) 就是JSP中的那些HTML标记 作用:页面布局和美化 2.JSP的Java脚本表达式: 作用:输出数据到页面上 语法:<%=表达式%&g ...

  7. jsp七大动作指令

    jsp 七大动作指令 1) jsp:include 指令 用于在请求处理阶段包含来自一个Servlet或jsp页面的响应.和编译指令中的include不同,include只能用于包含静态页面,而jsp ...

  8. JSP的编译指令

    JSP有3个编译指令,是通知JSP引擎的消息,它不直接生成输出.编译指令都有默认值,无须为每个指令设置值. 常见的编译指令有如下三个: page:针对当前页面的指令. include:指定包含另一个页 ...

  9. jsp的常用指令有哪些(编译指令/动作指令整理)

    jsp的常用指令有哪些(编译指令/动作指令整理) JSP动作指令 JSP - JSP中的脚本.指令.动作和注释

随机推荐

  1. java 设计模式 之 桥梁模式

    桥梁模式:将抽象和实现解耦,使两者可以独立的变化.解释:将两个有组合关系,强耦合的对象,各自抽象然后解耦.(类关系图看https://www.cnblogs.com/blogxiao/p/951388 ...

  2. freebsd安装snmp

    pkg_add http://ip地址/pub/FreeBSD/ports/packages/Latest/net-snmp.tbzFetching http://ip地址/pub/FreeBSD/p ...

  3. UVA 10572 Black & White (状压DP)

    题意:有一个n*m的矩阵,其中部分格子已经涂黑,部分涂白,要求为其他格子也上黑/白色,问有多少种涂法可以满足一下要求: (1)任意2*2的子矩阵不可以同色. (2)所有格子必须上色. (3)只能有两个 ...

  4. (八)maven学习之继承

    继承 如果项目划分了多个模块,都需要依赖相似的jar包,只需要创建一个父模块,在它的pom.xml文件中配置依赖的jar包.功能模块只需要继承父模块,就可以自动得到其依赖的jar包,而不需要再每个模块 ...

  5. docker配置国内镜像

    1. 配置 root@ros-OptiPlex-3050:~# cat /etc/docker/daemon.json {    "graph": "/mnt/docke ...

  6. js 判断是什么浏览器、是否为谷歌浏览器

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http ...

  7. Navicat连接Oracle详细教程

    Navicat Premium算是比较好的一个可视化数据库管理工具了,短小精悍,一个工具解决三种数据库的连接问题,真正做到了集成管理,对MySQL,SQLServer而言,连接比较简单,就不赘述了,现 ...

  8. rpn网络结构再分析

    这是rpn网络train阶段的网络结构图 rpn_conv1之前的网络是特征提取层,也是和fast rcnn共享的层.rpn_conv1是一层1*1的卷积,这一层是单独为rpn网络多提取一层特征,这一 ...

  9. [Android 测试] 压力稳定性测试之: Monkey 详解分析脚本(转载)

    一.什么是稳定性测试? 通过随机点击屏幕一段时间,看看app会不会奔溃,能不能维持正常运行. 二. Money是什么? Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模 ...

  10. ES6新增rest的用法

    arguments类似Array但是并不是Array 而rest就是一个Array 用rest替代atguments eg:给数组排序 //arguments变量的写法: function sortF ...