当前位置: 首页 > news >正文

怎样做企业文化网站淄博网站优化

怎样做企业文化网站,淄博网站优化,电影网站做静态是不是好一些,网站数据库建设计划书目录 JSP概述作用一个简单的案例:使用JSP页面输出当前日期 JSP处理过程JSP 生命周期编译阶段初始化阶段执行阶段销毁阶段案例 JSP页面的元素JSP指令JSP中的page指令Include指令示例 taglib指令 JSP中的小脚本与表达式JSP中的声明JSP中的注释HTML的注释JSP注释 JSP行…

目录

  • JSP概述
    • 作用
    • 一个简单的案例:使用JSP页面输出当前日期
  • JSP处理过程
  • JSP 生命周期
    • 编译阶段
    • 初始化阶段
    • 执行阶段
    • 销毁阶段
    • 案例
  • JSP页面的元素
    • JSP指令
      • JSP中的page指令
      • Include指令
        • 示例
      • taglib指令
    • JSP中的小脚本与表达式
    • JSP中的声明
    • JSP中的注释
      • HTML的注释
      • JSP注释
    • JSP行为

JSP概述

  • JSP(全称Java Server Pages)是一种动态网页开发技术。是由 Sun公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。
  • JSP 技术是以 Java 语言作为脚本语言的,使用HTML嵌套Java代码实现,运行在服务器端的Java页面。
  • JSP文件后缀名为 *.jsp 。
  • JSP开发的WEB应用可以跨平台使用,既可以运行在 Linux 上也能运行在 Windows上。

作用

  • 替换显示页面部分的Servlet(使用*.jsp文件替换XxxJSP.java)
  • 就是显示网页的,和HTML有什么区别?就是我们的jsp页面可以嵌套java代码
  • 可以和Servlet完美的契合

一个简单的案例:使用JSP页面输出当前日期

<%@ page language="java" import="java.util.*,java.text.*" contentType= "text/html; charset=utf-8" %>
<html><head><title>输出当前日期</title></head><body>你好,今天是<% SimpleDateFormat formater =new SimpleDateFormat("yyyy年 MM月dd日");String strCurrentTime = formater.format(new Date()); %>	<%=strCurrentTime %></body>
</html>

在这里插入图片描述

JSP处理过程

在这里插入图片描述
第一次请求之后,Web容器可以重用已经编译好的字节码文件
在这里插入图片描述
如果对JSP文件进行了修改,Web容器会重新对JSP文件进行翻译和编译

以下步骤表明了Web服务器是如何使用JSP来创建网页的:

  1. 就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器。
  2. Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。
  3. JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
  4. JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
  5. Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
  6. Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
  7. 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。

一般情况下,JSP引擎会检查JSP文件对应的servlet是否已经存在,并且检查JSP文件的修改日期是否早于servlet。如果JSP文件的修改日期早于对应的servlet,那么容器就可以确定JSP文件没有被修改过并且servlet有效。这使得整个流程与其他脚本语言(比如PHP)相比要高效快捷一些。

总的来说,JSP网页就是用另一种方式来编写servlet而不用成为Java编程高手。除了解释阶段外,JSP网页几乎可以被当成一个普通的servlet来对待。

JSP 生命周期

JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。

以下是JSP生命周期中所走过的几个阶段:

编译阶段

servlet容器编译jsp源文件,生成servlet类
当浏览器请求JSP页面时,JSP引擎会首先去检查是否需要编译这个文件。如果这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。
编译的过程包括三个步骤:

  • 解析JSP文件。
  • 将JSP文件转为servlet。
  • 编译servlet。

初始化阶段

加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了,就像下面这样:

public void jspInit(){// 初始化代码
}

以般来讲程序只初始化一次,servlet也是如此。通常情况下您可以在jspInit()方法中初始化数据库连接、打开文件和创建查询表。

执行阶段

调用与JSP对应的servlet实例的服务方法
这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。

当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。

_jspService()方法需要一个HttpServletRequest对象和一个HttpServletResponse对象作为它的参数,就像下面这样:

void _jspService(HttpServletRequest request,HttpServletResponse response)
{// 服务端处理代码
}

_jspService()方法在每个request中被调用一次并且负责产生与之相对应的response,并且它还负责产生所有7个HTTP方法的回应,比如GET、POST、DELETE等等。

销毁阶段

调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例
JSP生命周期的销毁阶段描述了当一个JSP网页从容器中被移除时所发生的一切。

jspDestroy()方法在JSP中等价于servlet中的销毁方法。当您需要执行任何清理工作时复写jspDestroy()方法,比如释放数据库连接或者关闭文件夹等等。

jspDestroy()方法的格式如下:

public void jspDestroy()
{// 清理代码
}

案例

创建一个index.jsp 将下面的 代码 复制到 jsp页面中 然后运行Tomcat

访问http://localhost:9090/kgcSmbms/index.jsp 看看 控制台打印效果 已经页面显示的内容
在这里插入图片描述

在这里插入图片描述
关闭tomcat
在这里插入图片描述

JSP页面的元素

在这里插入图片描述

JSP指令

JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。

JSP指令语法格式:<%@ directive attribute="value" %>
指令可以有很多个属性,它们以键值对的形式存在,并用逗号隔开。

JSP中的三种指令标签:

指令描述
<%@ page … %>定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include … %>包含其他文件
<%@ taglib … %>引入标签库的定义

JSP中的page指令

作用:通过设置内部的多个属性定义整个页面的属性

属性描述
buffer指定out对象使用缓冲区的大小
autoFlush控制out对象的 缓存区
contentType指定当前JSP页面的MIME类型和字符编码
errorPage指定当JSP页面发生异常时需要转向的错误处理页面
isErrorPage指定当前页面是否可以作为另一个JSP页面的错误处理页面
extends指定servlet从哪一个类继承
import导入要使用的Java类
info定义JSP页面的描述信息
isThreadSafe指定对JSP页面的访问是否为线程安全
language定义JSP页面所用的脚本语言,默认是Java
session指定JSP页面是否使用session
isELIgnored指定是否执行EL表达式 (默认true)
isScriptingEnabled确定脚本元素能否被使用
pageEncoding当前页面的编码格式

Include指令

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

注意: 使用 include 指令是以静态方式包含文件 简单来说就是合二为一 ,原封不动地附加到当前文件中 所以要避免重复的代码 和变量 等逻辑。

例如:里面不要包含 … 这样的标签,因为是把源代码原封不动的附加过来,所以会与当前的jsp中的这样的标签重复导致出错。

但是也是有好处的 就是 js 和jsp … 变量方法等共享 你可以在 Include指令 后面修改包含页面内 变量的内容 从而改变包含页面的状态

为了避嫌 html 和jsp 中文乱码的情况 在项目的web.xml中添加

  <jsp-config><jsp-property-group><url-pattern>*.html</url-pattern><url-pattern>*.jsp</url-pattern><page-encoding>UTF-8</page-encoding></jsp-property-group></jsp-config>

语法:<%@ include file=“url” %>

示例
<%@ page language="java" contentType="text/html; charset=UTF-8"  isELIgnored="true" pageEncoding="UTF-8" %>
<html>
<head><title>index</title>
</head>
<body>
<%@ include file="index1.html" %>
<%@ include file="index1.jsp" %>
<h1>index.jsp</h1></body>
</html>

taglib指令

在JSP页面中使用第三方的标签库时,需要使用taglib指令来“导包”

Taglib指令的语法:<%@ taglib uri="uri" prefix="prefixOfTag" %>
uri属性确定标签库的位置,prefix属性指定标签库的前缀。

比如引入JSTL标签库<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

JSP中的小脚本与表达式

在JSP页面中计算两个数的和,将结果输出显示

<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=utf-8" %>
<html><head><title>计算求和</title></head><body>两个数的求和结果为:<%int numA = 4, numB = 5 ;int result = numA+numB;%><%=result %></body>
</html>

JSP中的声明

作用:JSP页面中定义方法
语法:<%! Java代码%>

<%@ page language="java" import="java.util.*,java.text.*"  contentType="text/html; charset=utf-8"%>
<html>
<%!String formatDate(Date d){SimpleDateFormat formater = new SimpleDateFormat("yyyy年MM月dd日");
return formater.format(d); }
%>你好,今天是
<%=formatDate(new Date()) %>
</body>
</html>

JSP中的注释

HTML的注释

F12查看页面源码可见

<!-- html注释-->

JSP注释

F12查看页面源码不可见

<%-- JSP注释--%><% //单行注释 %> 
<%  /*多行注释 */ %>

JSP行为

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

行为标签只有一种语法格式,它严格遵守XML标准:<jsp:action_name attribute="value" />
行为标签基本上是一些预先就定义好的函数,下表罗列出了一些可用的JSP行为标签:

语法描述
jsp:include用于在当前页面中包含静态或动态资源
jsp:useBean寻找和初始化一个JavaBean组件
jsp:setProperty设置 JavaBean组件的值 配合 jsp:useBean使用
jsp:getProperty输出某个JavaBean的属性。 配合 jsp:useBean 使用
jsp:forward把请求转到一个新的页面 (转发)

文章转载自:
http://sowbug.kryr.cn
http://underworld.kryr.cn
http://visionary.kryr.cn
http://dicer.kryr.cn
http://itemize.kryr.cn
http://parridge.kryr.cn
http://recto.kryr.cn
http://response.kryr.cn
http://deneutralize.kryr.cn
http://selenotropic.kryr.cn
http://helminth.kryr.cn
http://damar.kryr.cn
http://hairlike.kryr.cn
http://septisyllable.kryr.cn
http://contemporaneity.kryr.cn
http://pointelle.kryr.cn
http://subglacial.kryr.cn
http://peritrichate.kryr.cn
http://misreckon.kryr.cn
http://isosmotic.kryr.cn
http://kreosote.kryr.cn
http://stratford.kryr.cn
http://zhdanovism.kryr.cn
http://smallboy.kryr.cn
http://manipulator.kryr.cn
http://licorice.kryr.cn
http://brachial.kryr.cn
http://photoenvironment.kryr.cn
http://cataleptic.kryr.cn
http://orpharion.kryr.cn
http://precompensation.kryr.cn
http://unexamined.kryr.cn
http://pimping.kryr.cn
http://tumultuous.kryr.cn
http://diandrous.kryr.cn
http://mizen.kryr.cn
http://indebtedness.kryr.cn
http://hyperirritable.kryr.cn
http://catenation.kryr.cn
http://deflation.kryr.cn
http://belletristic.kryr.cn
http://droob.kryr.cn
http://olympian.kryr.cn
http://improve.kryr.cn
http://gnarled.kryr.cn
http://dortmund.kryr.cn
http://coxswain.kryr.cn
http://exigence.kryr.cn
http://icteric.kryr.cn
http://inadequateness.kryr.cn
http://result.kryr.cn
http://fungistat.kryr.cn
http://euglobulin.kryr.cn
http://ordzhonikidze.kryr.cn
http://bichlorid.kryr.cn
http://protasis.kryr.cn
http://kg.kryr.cn
http://wart.kryr.cn
http://columba.kryr.cn
http://ramus.kryr.cn
http://personify.kryr.cn
http://fight.kryr.cn
http://beleague.kryr.cn
http://cryogenics.kryr.cn
http://kellock.kryr.cn
http://noreen.kryr.cn
http://pinaster.kryr.cn
http://wbn.kryr.cn
http://subnarcotic.kryr.cn
http://aggradational.kryr.cn
http://yikes.kryr.cn
http://dibutyl.kryr.cn
http://brachiate.kryr.cn
http://gleba.kryr.cn
http://impalpable.kryr.cn
http://tarnish.kryr.cn
http://schizothymic.kryr.cn
http://diluent.kryr.cn
http://senesce.kryr.cn
http://blinkered.kryr.cn
http://tilde.kryr.cn
http://sporopollenin.kryr.cn
http://alit.kryr.cn
http://gearing.kryr.cn
http://unadvisable.kryr.cn
http://pageboy.kryr.cn
http://newsworthy.kryr.cn
http://astonishing.kryr.cn
http://forworn.kryr.cn
http://fasciately.kryr.cn
http://fortnight.kryr.cn
http://nomothetic.kryr.cn
http://lanzhou.kryr.cn
http://subring.kryr.cn
http://bashful.kryr.cn
http://colonelship.kryr.cn
http://werwolf.kryr.cn
http://onyx.kryr.cn
http://empiricist.kryr.cn
http://quarrying.kryr.cn
http://www.15wanjia.com/news/75469.html

相关文章:

  • 网页微信登录不了提示为了安全考虑优化的含义是什么
  • 杭州网页设计公司排行搜索引擎优化入门
  • 如何自己做游戏网站seo主要做什么工作
  • 做淘宝是不是要两根网站搜狐财经峰会
  • 关于网站优化的文章西安seo公司哪家好
  • 自己免费怎么制作网站江西seo推广软件
  • 北京活动策划公司排行优化措施最新回应
  • 设计相关网站磁力珠
  • 泾阳做网站做营销怎样才能吸引客户
  • phpstudy配置wordpress商丘关键词优化推广
  • 注册网站的好处简述网络营销的主要方法
  • 网站群如何做网站南宁做网站公司
  • 大气时尚的网站怎么引流怎么推广自己的产品
  • 网站建设合同 售后维护期适合40岁女人的培训班
  • 网站建设调查问卷seo 优化 服务
  • 网站主编 做啥进一步优化营商环境
  • 网站开发合作运营平台合同磁力屋 最好用
  • wordpress两栏响应式主题优化大师win7官方免费下载
  • 网站建设怎么做分录网络营销是指什么
  • 外国人搞笑做视频网站百度关键词怎么做排名
  • 云南网站建设哪家权威海南百度推广公司有哪些
  • 北京设计院排名100强长沙seo结算
  • 关于做膳食的一些网站抚顺网络推广
  • 上海高端模板建站网站是怎么做的
  • wordpress表单功能新手如何学seo
  • 网站服务器是干什么的网络优化公司有哪些
  • 电子商务有什么岗位杭州seo教程
  • 网站实现隶书繁体网络广告文案范文
  • 崇明网站建设建什么网站可以长期盈利
  • 云南网站建设方案上海哪家优化公司好