JSP第一章动态网页的基础


什么是动态网站(dynamic website)?
动态网站:
误区:初学者一般认为动态网页,就是会动的网页,但实际上不是这样的。
动态网页是指在服务器端运行的,使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容。可以让用户和服务器交互的网站
动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站(股票网站),一般情况下动态网站通过数据库进行架构。 动态网站除了要设计网页外,还要通过数据库和编程序来使网站具有更多自动的和高级的功能。动态网站体现在网页一般是以asp,jsp,php,aspx等结束(mvc,.action),而静态网页一般是HTML(标准通用标记语言的子集)结尾,动态网站服务器空间配置要比静态的网页要求高,费用也相应的高,不过动态网页利于网站内容的更新,适合企业建站。动态是相对于静态网站而言。
动态网站可以实现交互功能,如用户注册、信息发布、产品展示、订单管理等等;
动态网页并不是独立存在于服务器的网页文件,而是浏览器发出请求时才反馈网页;
动态网页中包含有服务器端脚本,所以页面文件名常以asp、jsp、php等为后缀。但也可以使用URL静态化技术,使网页后缀显示为HTML。所以不能以页面文件的后缀作为判断网站的动态和静态的唯一标准。
动态网页由于需要数据库处理,所以动态网站的访问速度大大减慢;
动态网页由于存在特殊代码,所以相比较静态网页,其对搜索引擎的友好程度相对要弱一些。
但随着计算机性能的提升以及网络带宽的提升,最后两条已经基本得到解决。
程序架构(B/S和C/S架构)
解析:
B/S:必须要借助浏览器才可以执行的程序
优点:方便程序的升级,一旦程序的功能需要发生变更的时候,只需要更新服务器端的程序
,客户端的程序也就是浏览器不需要进行任何附加的操作。
C/S:不需要借助浏览器就可以访问的程序
优点:01.交互性好:可以更好的让用户使用快捷键
02.更好的控制硬件。
URL和URI深入理解

常见的Web服务器有几种?
解析:
tomcat:
apache:
Weblogic
Jboss
webspacher
Jetty 学生配置过
IIS (解析.NET 程序)
Nginx高性能
Tomcat的目录结构(重点)


Web应用(MyEclipse中项目)的目录结构

如何配置网站的起始页?
解析:在网站的Web.xml文件中加入如下节点
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
关于容器(Container)的理解
我们可以将tomcat看成是一种容器,就是因为它能处理jsp/servlet请求。
如何更改tomcat服务器的端口
01.找到conf文件夹,然后打开server.xml文件。
找到 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
把port修正成我们需要的端口,重启服务器。
什么是jsp?
JSP(Java Server Page)Java 服务页面
Jsp,asp,apsx,php,python
解析:jsp是用java语言来开发web应用的一种技术
微软的asp就是这种模式,后来出现了aspx页面,替代了它
在MyEclipse中配置(集成)tomcat
01.先创建一个webProject
02.window-preferences-MyEclipse-Servers-tomcat-tomcat 6.x
03.在右侧的浏览窗口中,选择D盘的tomcat文件夹,然后apply,然后ok
04.window-showview-servers,就相当于将Servers的启动窗口放置到了MyEclipse的下方
05.附加web应用,再开启服务
jsp页面元素包含哪些?
解析:静态内容,指令,表达式,小脚本,声明,注释

更多补充:
01.JSP文件编码
pageEncoding和contentType的关系:
(1). pageEncoding的内容只是用于jsp输出时的编码,不会作为header发出去的;
是告诉web Server jsp页面按照什么编码输出,即web服务器输出的响应流的编码;
(2). 第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,
结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java).
(3). 第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,
经过这个阶段的结果全部是UTF-8的encoding的java源码.JAVAC用UTF-8的encoding读取java源码,
编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范.
(4). 第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,
输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效.
02.Tomcat启动可以不配置 CATALINA_HOME
先说不配置tomcat的环境变量为什么tomcat可以运行吧
用记事本打开tomcat/bin目录下面的startup.bat
在文本的前一部分有下面的脚本代码
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%CURRENT_DIR%
其中的
set XXXXXXXX=******
就是增加一个临时的环境变量.只对当前的进程起作用的
%cd%是windows控制台程序自带的一个变量.指这个脚本所在的那个目录的路径
set CATALINA_HOME=%CURRENT_DIR%
自然就是设置一个临时的环境变量CATALINA_HOME...这个就是一些教程里边所要配置的环境变量啦...
以前版本的tomcat是要配置的..但是比较新版本的现在都不用了...4.0以后吧..
再来一个就是jdk的JAVA_HOME了...其实也是相类似的
windows版本的jdk安装以后会将安装的路径写入系统的注册表里边的...
很多程序不用配置JAVA_HOME是因为那些程序是直接通过读取注册表里边的路径获取了jdk的路径.
比如eclipse; netbeans则是在安装的时候,安装程序会去注册表里边读取jdk的路径,直接把它写到netbeans的配置文件里边去了
而tomcat就没有这样去处理,只是简单地通过环境变量去获取jdk的路径,所以要运行tomcat一般都是要配置环境变量的..
如果不配置也可以,修改tomcat/bin/startup.bat...tomcat这样做也是出于跨平台考虑的...
因为系统注册表是只有windows系统才有的
3.WEB-INF与META-INF
/WEB-INF/web.xml
Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/
包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。
/WEB-INF/lib/
存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
/WEB-INF/src/
源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties
数据库配置文件
/WEB-INF/tags/
存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:<%@ taglibprefix="tags" tagdir="/WEB-INF /simpleTags" % >。
/WEB-INF/jsp/
jsp 1.2 以下版本的文件存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。此目录主要存放的是 jsp 1.2 以下版本的文件,为区分 jsp 2.0 文件,通常使用 jsp 命名,当然你也可以命名为 jspOldEdition 。
/WEB-INF/jsp2/
与 jsp 文件目录相比,该目录下主要存放 Jsp 2.0 以下版本的文件,当然,它也是可以任意命名的,同样为区别 Jsp 1.2以下版本的文件目录,通常才命名为 jsp2。
META-INF
相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务
manifest.mf文件,在用jar打包时自动生成。
.<!-- 我在两个<%%> <%=%>当中,为什么能实现数据共享?
解析:我们知道,所有的客户端请求服务器的jsp页面,在Server内部,都要先进行翻译:翻译成一个java类。
java类的名字和jsp页面的名称相同。其中有一个处理客户端请求的[核心方法]。方法的名字是_jspservice(){
由于 int num=5;和 out.print(num); 在同一个方法体中,当然可以实现数据共享,他们作用范围相同
}
JSP三大指令
Page指令
Include指令
taglib指令
.三种注释 本页面 Java类 HTML标签
html注释 <!--html注释--> Has Has Has
java注释 //java注释 Has Has Hasn't
jsp注释 <%-- <%=num %>jsp注释 --%> Has Hasn't Hasn't
JSP第一章动态网页的基础的更多相关文章
- jsp第一章 动态网页开发基础
动态网站可以实现交互功能,如用户注册.信息发布.产品展示.订单管理等等: 动态网页并不是独立存在于服务器的网页文件,而是浏览器发出请求时才反馈网页: 动态网页中包含有服务器端脚本,所以页面文件名常以a ...
- 第一章使用JSP/Server技术开发新闻发布系统第一章动态网页开发基础
一:为什么需要动态网页 由于静态网页的内容是固定的,不能提供个性化和定制化得服务,使用动态网页可真正地与用户实现互动. 二:什么是动态网页 ①:动态网页是指在服务器端运行的,使用程序语言设 ...
- JSP/Servlet开发——第一章 动态网页基础
1.动态网页:在服务端运行的使用程序语言设计的交互网页 : ●动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站(股票网站),一般情况下动态网站通过数据库进行架构. ●动态 ...
- 16第一章 ASP.Net编程基础知识
第一章 ASP.Net编程基础知识 第一章 ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...
- 使用JSP/Servalet技术开发新闻发布系统------动态网页开发基础
什么是动态网页? 动态网页是指在服务器端运行的程序或者网页,它们会随不同客户.不同时间,返回不同的网页. 动态网页的特点? (1).交互性:即网页会根据用户的要求和选择而动态改变和响应.采用动态网页技 ...
- 《The Django Book》实战--第二章--动态网页基础
这章演示了一些最基本的Django开发动态网页的实例,由于版本不一样,我用的是Django 1.,6.3,有些地方按书上的做是不行的,所以又改了一些,写出来让大家参考. 这是一个用python写的一个 ...
- jsp动态网页开发基础
JSP基础语法 jsp页面元素构成 jsp页面组成部分有:指令,注释,静态内容,表达式,小脚本,声明. 1.表达式<%= %> 2.小脚本<% %> 3.声 ...
- 第一章:HTML5的基础
HTML5基础 1.DoctYpe声明 <!DCTYPE html>必须放在第一行. <title> <title> 百度</title> <me ...
- 笔记-Python基础教程(第二版)第一章
第一章 快速改造:基础知识 01:整除.乘方 (Python3.0之前 如2.7版本) >>> 1/2 ==>0 1/2整除,普通除法: 解决办法1: 1.0/2.0 ==& ...
随机推荐
- ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目中的使用
在前面几篇随笔介绍了我对ABP框架的改造,包括对ABP总体的介绍,以及对各个业务分层的简化,Web API 客户端封装层的设计,使得我们基于ABP框架的整体方案越来越清晰化, 也越来越接近实际的项目开 ...
- ZooKeeper学习之路(四)—— Java 客户端 Apache Curator
一.基本依赖 Curator是Netflix公司开源的一个Zookeeper客户端,目前由Apache进行维护.与Zookeeper原生客户端相比,Curator的抽象层次更高,功能也更加丰富,是目前 ...
- 长春理工大学第十四届程序设计竞赛(重现赛)L
L.Homework Stream 题目链接:https://ac.nowcoder.com/acm/contest/912/L 题目 作为大珩班尖子生,小r每天有很多作业要完成,例如工图.工图和工图 ...
- C/C++应用程序内存泄漏检查统计方案
一.前绪 C/C++程序给某些程序员的几大印象之一就是内存自己管理容易泄漏容易崩,笔者曾经在一个产品中使用C语言开发维护部分模块,只要产品有内存泄漏和崩溃的问题,就被甩锅“我的程序是C#开发的内存都是 ...
- LinkedList源码分析:JDK源码分析系列
如果本文中有不正确的地方请指出由于没有留言可以在公众号添加我的好友共同讨论. 1.介绍 LinkedList 是线程不安全的,允许元素为null的双向链表. 2.继承结构 我们来看一下LinkedLi ...
- C++智能指针的几种用法
auto在c++11中已经弃用. 一.auto_ptr模板 auto_ptr与shared_ptr.unique_ptr都定义了类似指针的对象,可以将new到的地址赋给这一对象,当智能指针过期时,析构 ...
- .Net项目中NLog的配置与使用
引言: 因为之前在项目开发中一直都是使用的Log4Net作为项目的日志记录框架,最近忽然感觉对它已经有点腻了,所以尝试着使用了NLog作为新项目的日志记录框架(当然作为一名有志向的攻城狮永远都不能只局 ...
- 探寻 webpack_bundle_analyzer 原理
webpack_bundle_analyzer 是什么? 这是webpack官方出品的,对项目中模块依赖关系及体积的分析插件,其界面如下: 问题来了,这是如何来进行统计的? 这里提供一个插件的代码,可 ...
- goroutine上下文切换机制
goroutine是go语言的协程,go语言在语言和编译器层面提供对协程的支持.goroutine跟线程一个很大区别就是线程是操作系统的对象,而goroutine是应用层实现的线程.goroutine ...
- python 的一些小项目
1.在线教育平台(视频播放) 2.仿微信网页版(语音.视频.文字聊天) 3.高德API + Python 解决租房问题 4.仿知乎 5.Django打造文件分享系统.文件管理.搜索引擎(仿云盘) 6. ...