为什么我制作的网页登录页面扩展名是php的时候可以正常显示,改位html就乱码呢?


上周同事在做网页时,遇到网页打开之后都是乱码,同事很迷茫了,不知道该怎么解决,下面是小编抽时间把比较常见的html网页乱码问题及解决办法整理分享给大家。

其实导致网页乱码主要有几个原因,以下给出解决方法。

1、HTML的字符编码问题

该问题较常见,也是最明显和最容易解决的。

 

2、PHP的字符编码问题


 


不仅我们的内容有编码,文件本身也有编码。

使用Notepad++打开一份文件,可以看到右下角显示的内容。

就是文件本身的编码了。
可以使用Notepad++工具栏上的“格式”,为我们的文件转换编码。


MySQL数据在默认安装时是latin1编码,所以在没有注意的情况下很可能会导致网页乱码。

使用root进入数据库,







这3个设置成utf8。

所以在MySQL创建数据库时注意将字符集和排序规则设置为utf8,。


则基本可保证网页不会出现乱码问题。
以上就是小编给大家分享的四个常见html网页乱码问题及解决办法,希望大家喜欢。
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(),我们将及时处理。
 

Hyper Text Markup Language 超文本标记语言,是一种用来制作“网页”的简单标记语言;用HTML编写的超文本文档称为HTML文档,HTML文档的扩展名是html或者htm

锚链接是带有文本的超链接。可以跳转到页面的某个位置,适用于页面内容较多,超过一屏的场合 。分为页面内的锚链接和页面间的锚链接 。

1.在标记位置利用a标签的name属性设置标记。

2.在导航位置通过a标签的href属性用#开头加name属性值即可跳转锚点位置。

3. HTML字符实体的作用及其常用字符实体

有些字符,比如说“<”字符,在HTML中有特殊的含义,因此不能在文本中使用。想要在HTML中显示一个小于号“<”,需要用到字符实体:&lt;或者&#60;

字符实体拥有三个部分:一个and符号(&),一个实体名或者一个实体号,最后是一个分号(;)

4. HTML表单的作用和常用表单项类型

利用表单可以收集客户端提交的有关信息。

5. 表格、框架、div三种HTML布局方式的特点

方便排列有规律、结构均匀的内容或数据 产生垃圾代码、影响页面下载时间、灵活性不大难于修改
支持滚动条、方便导航节省页面下载时间等 兼容性不好,保存时不方便、应用范围有限 小型商业网站、论坛后台管理
代码精简、提高页面下载速度、表现和内容分离 复杂的不规则页面、业务种类较多的大型商业网站
当表单元素设置readonly后,表单提交能将该表单元素的值传递出去。 当表单元素设置disabled后,表单提交不能将该表单元素的值传递出去。

CSS是一系列格式规则,它们控制网页内容的外观。CSS简单来说就是用来美化网页用的。

CSS的具体作用包括:

1) 使网页丰富多彩,易于控制。

2) 页面的精确控制,实现精美、复杂页面 。

3) 样式表能实现内容与样式的分离,方便团队开发。

4) 样式复用、方便网站的后期维护。

8. CSS2常用选择器类型及其含义

元素标签名{样式属性}
. 元素标签class属性值{样式属性}
#元素标签id属性值{样式属性}
父元素标签 子元素标签{ 样式属性}
父元素标签名>子元素名{ 样式属性}

9. 引入样式的三种方式及其优先级别

1. 外部样式表(存放.css文件中)

标签属性名为style

优先级级别:在一个页面上,自上而下,后定义优先级高。

盒子模型类似于生活中的盒子,具有4个属性,外边距,内边距,边框,内容。

外边距:margin,用于设置元素和其他元素之间的距离。

内边距:padding,用于设置元素内容和边框之间的距离。

边框:border,用于设置元素边框粗细,颜色,线型。

内容:width,height,用于设置元素内容显示的大小。

/*设置图片外边距(表示该图片与其他图片的距离为5px)*/

1) 解释性: JavaScript不同于一些编译性的程序语言,例如C、C++等,它是一种解释性的程序语言,它的源代码不需要经过编译,而直接在浏览器中运行时被解释。

2) 基于对象: JavaScript是一种基于对象的语言。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。

3) 事件驱动:JavaScript可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的响应,是以事件驱动的方式进行的。所谓事件驱动,就是指在主页中执行了某种操作所产生的动作,此动作称为“事件”。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。

4) 跨平台:JavaScript依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。

数值型:整数和浮点数统称为数值。例如85或3.1415926等。

字符串型:由0个,1个或多个字符组成的序列。在JavaScript中,用双引号或单引号括起来表示,如“您好”、‘学习JavaScript’等。 不区分单引号、双引号。

逻辑(布尔)型:用true或false来表示。

空(null)值:表示没有值,用于定义空的或不存在的引用。

要注意,空值不等同于空字符串""或0。

未定义(undefined)值:它也是一个保留字。表示变量虽然已经声明,但却没有赋值。

除了以上五种基本的数据类型之外,JavaScript还支持复合数据类型,包括对象和数组两种。

常用对象包括日期对象Date,字符串对象String,数组对象Array

//获取并显示系统当前时间

//获取出’sxt’的下标位置

BOM浏览器对象模型,由一系列对象组成,是访问、控制、修改浏览器的属性的方法。

DOM文档对象模型,由一系列对象组成,是访问、检索、修改XHTML文档内容与结构的标准方法。

– BOM描述了与浏览器进行交互的方法和接口

– DOM描述了处理网页内容的方法和接口

– DOM属于BOM的一个属性

16. JavaScript中的三种弹出式消息提醒命令是什么?

2) window.confirm() 显示一个带有提示信息、确定和取消按钮的对话框

setTimeout和setInterval的语法相同。它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。

不过这两个函数还是有区别的,setInterval在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码,而setTimeout只执行一次那段代码。

第一种方式:操作元素的属性(对象.style.样式名=样式值;)

第二种方式:操作元素的类(对象.className=类;)

1. 静态网页和动态网页的联系和区别

1)静态网页是网站建设的基础,静态网页和动态网页都要使用到HTMl语言。

2)静态网页是相对于动态网页而言,指没有后台数据库、不含程序和不可交互的网页、是标准的HTML文件,它的文件扩展名是.htm或.html。你编的是什么它显示的就是什么、不会有任何改变。

3)静态网页和动态网页之间并不矛盾,为了网站适应搜索引擎检索的需要,动态网站可以采用静动结合的原则,适合采用动态网页的地方用动态网页,如果必要使用静态网页,则可以考虑用静态网页的方法来实现,在同一个网站上,动态网页内容和静态网页内容同时存在也是很常见的事情。

1)程序是否在服务器端运行,是重要标志。在服务器端运行的程序、网页、组件,属于动态网页,它们会随不同客户、不同时间,返回不同的网页,例如ASP、PHP、JSP、、CGI等。运行于客户端的程序、网页、插件、组件,属于静态网页,例如html页、Flash、javascript、VBscript等等,它们是永远不变的。

2)编程技术不同。静态网页和动态网页主要根据网页制作的语言来区分。静态网页使用语言:HTML。 动态网页使用语言:HTML+ASP 或 HTML+PHP 或 HTML+JSP 等其它网站动态语言。

3)被搜索引擎收录情况不同。由于编程技术不容,静态网页是纯粹HTML格式的网页,页面内容稳定,不论是网页是否被访问,页面都被保存在网站服务器上,很容易被搜索引擎收录。而动态网页的内容是当用户点击请求时才从数据库中调出返回给用户一个网页的内容,并不是存放在服务器上的独立文件,相比较于静态网页而言,动态网页很难被搜索引擎收录。

4)用户访问速度不同。用户访问动态网页时,网页在获得搜索指令后经过数据库的调查匹配,再将与指令相符的内容传递给服务器,通过服务器的编译将网页编译成标准的HTML代码,从而传递给用户浏览器,多个读取过程大大降低了用户的访问速度。而静态网页不同,由于网页内容直接存取在服务器上,省去了服务器的编译过程,用户访问网页速度很快。

5)制作和后期维护工作量不同。动态网页的设计以数据库技术为基础,可以实现多种功能,降低了网站维护的工作量。而静态网页由于没有数据库的支持,网页内容更改时需要直接修改代码,在网站内容制作和维护中,所需的工作量更大。

动态网页与静态网页各有特点,网站设计师在网页设计时,主要根据网站的功能需求和网站内容多少选择不同网页。如,网站包含信息量太大时,就需要选择动态网页,反之,则选择静态网页。

ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和Visual BASIC类似,可以像SSI(Server Side Include)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。

PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。

JSP是一个简化的Servlet,它是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML中插入Java程序段和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

ASP优点:无需编译、易于生成、独立于浏览器、面向对象、与任何ActiveX scripting 语言兼容、源程序码不会外漏。

1) Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来。

2) ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于Windows NT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,那么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失。

3) 还无法完全实现一些企业级的功能:完全的集群、负载均横。

1)一种能快速学习、跨平台、有良好数据库交互能力的开发语言。

2)简单轻便,易学易用。

3) 与Apache及其它扩展库结合紧密。

1) 数据库支持的极大变化。

2) 不适合应用于大型电子商务站点。

1) 一处编写随处运行。

2) 系统的多台平支持。

3) 强大的的可伸缩性。

4) 多样化和功能强大的开发工具支持。

1) 与ASP一样,Java的一些优势正是它致命的问题所在。

通过CGI,Web 服务器可以将根据请求不同启动不同的外部程序,并将请求内容转发给该程序,在程序执行结束后,将执行结果作为回应返回给客户端。也就是说,对于每个请求,都要产生一个新的进程进行处理。

Servlet 是在服务器上运行的小程序。在实际运行的时候Java Servlet与Web服务器会融为一体。与CGI不同的是,Servlet对每个请求都是单独启动一个线程,而不是进程。这种处理方式大幅度地降低了系统里的进程数量,提高了系统的并发处理能力。

1)JSP从本质上说就是Servlet。JSP技术产生于Servlet之后,两者分工协作,Servlet侧重于解决运算和业务逻辑问题,JSP则侧重于解决展示问题。

2) 与CGI相比,Servlet效率更高。Servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁。而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet 。

3)与CGI相比,Servlet更容易使用,功能更强大,具有更好的可移植性,更节省投资。在未来的技术发展过程中,Servlet有可能彻底取代CGI。

Tomcat:目前应用非常广泛的免费web服务器,支持部分j2ee。

WebSphere:是IBM集成软件平台。可做web服务器,WebSphere提供了可靠、灵活和健壮的集成软件。

Weblogic:是美国bea公司出品的一个基于j2ee架构的中间件。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。

2)开源性不同:JBoss与Tomcat的是完全开源的,而其他两个不是。

WebLogic与WebSphere都是对业内多种标准的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web应用系统实施更简单,且保护投资,同时也使基于标准的解决方案的开发更加简便。

4)扩展性的不同:WebLogic和WebSphere都是以其高扩展的架构体系闻名于业内,包括客户机连接的共享、资源 pooling以及动态网页和EJB组件群集。

5)应用范围的区别:Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。WebLogic和WebSphere是商业软件,功能齐全强大,主要应用于大型企业的大型项目。JBOSS 主要应用于EJB服务的中小型公司。

6)安全性问题区别:因为JBoss和Tomcat都是开源的,所以它们的安全性相对来说比较低,万一应用服务器本身有什么漏洞,你是没办法向Apache索赔的。而WebLogic和WebSphere其容错、系统管理和安全性能已经在全球数以千记的关键任务环境中得以验证。

C/S结构,即Client/Server(客户机/服务器)结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可充分利用两端硬件环境优势。早期软件系统多以此作为首选设计标准。

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,节约了开发成本,便于软件维护。

1、C/S是建立在局域网的基础上的。B/S是建立在广域网的基础上的,但并不是说B/S结构不能在局域网上使用。

2、B/S业务扩展简单方便,通过增加页面即可增加服务器功能。C/S的客户端还需要安装专用的客户端软件,不利于扩展。

3、B/S维护简单方便。开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。。

4、B/S响应速度不及C/S;

5、B/S用户体验效果不是很理想

容器也是 java 程序,它的主要作用是为应用程序提供运行环境。容器用来接管安全性、并发性、事务处理、交换到辅助存储器和其它服务的责任

以tomcat为例:Tomcat是一个后台服务进程,其它的servlet(相当于DLL)是在Tomcat容器内运行,Broswer只与Tomcat通迅; Tomcat接受browser的请求,经过一系列动作(如果是静态网页,那么装载,按http协议形成响应流;如果是动态的如JSP,那就要调用JDK 中的servlet.jsp接口,解释形成静态网页,按http协议生成响应流发送回browser)后,形成静态网页,返回响应。

7. HTTP协议工作原理及其特点

超文本传输协议(HTTP:Hypertext Transport Protocol)是万维网应用层的协议,它通过两个程序实现:一个是客户端程序(各种浏览器),另一个是服务器 (常称Web服务器)。这两个通常运行在不同的主机上,通过交换报文来完成网页请求和响应,报文可简单分为请求报文和响应报文。

客户机与服务器建立连接后,浏览器可以向web服务器发送请求并显示收到的网页,当用户在浏览器地址栏中输入一个URL或点击一个超连接时,浏览器就向服务器发出了HTTP请求,请求方式的格式为:统一资源标识符、协议版本号,后边是MIME(Multipurpose Internet Mail Extensions)信息包括请求修饰符、客户机信息和可能的内容。该请求被送往由URL指定的WEB服务器,WEB服务器接收到请求后,进行相应反映,其格式为:一个状态行包括信息的协议版本号、一个成功或错误的代码,后边服务器信息、实体信息和可能的内容。即以HTTP规定的格式送回所要求的文件或其他相关信息,再由用户计算机上的浏览器负责解释和显示。

1)支持客户/服务器模式。特点:

2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5)无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

1) Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。

2) Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。

4) Get执行效率却比Post方法好。Get是form提交的默认方法。

9. 如何解决表单提交的中文乱码问题

1)设置页面编码,若是jsp页面,需编写代码

3)如果是get请求,在Servlet类中编写代码

或者直接修改Tomcat服务器配置文件server.xml增加内容:

10. 绝对路径、根路径、相对路径的含义及其区别

绝对路径指对站点的根目录而言某文件的位置,相对路径指以当前文件所处目录而言某文件的位置,相对路径-以引用文件之网页所在位置为参考基础,而建立出的目录路径。绝对路径-以Web站点根目录为参考基础的目录路径。

/>,重点是img前面的../,表示从html处于的include开始起步,输入一个../表示回到上面一级父文件夹下,然后再接着img/表示又从父级文件夹下的img文件开始了,最后定位img下面的next.jpg。

根路径是从网站的最底层开始起,一般的网站的根目录就是域名下对应的文件夹,就如D盘是一个网站,双击D盘进入到D盘看到的就是网站的根目录,这种路径的链接样式是这样的:如果在A网站中的a-test.html中要插入图片a-next.jpg,可以这样做:<img src="/img/a-next.jpg" >,以/开头表示从网站根目录算起,找到根目录下面的img文件夹下的next.jpg。

绝对路径就很好理解了,这种路径一般带有网站的域名,如果在A网站中的a-test.html中要插入图片a-next.jpg,需要这样这样写:<img src="" >,将图片路径上带有了域名信息,再打个比方:如果在A网站中的a-test.html中要插入B网站的图片b-next.jpg,就需要这样写:<img src="" >,这种方法适用与在不同网站之间插入外部网站的图片。

属性isThreadSafe=false模式表示它是以Singleton模式运行,该模式implements了接口SingleThreadMode, 该模式同一时刻只有一个实例,不会出现信息同步与否的概念。若多个用户同时访问一个这种模式的页面,那么先访问者完全执行完该页面后,后访问者才开始执行。

属性isThreadSafe=true模式表示它以多线程方式运行。该模式的信息同步,需访问同步方法(用synchronized标记的)来实现。 一般格式如下:

1) 加载:在下列时刻加载 Servlet:(1)如果已配置自动加载选项,则在启动服务器时自动加载 (web.xml中设置<load-on-start>);(2)在服务器启动后,客户机首次向 Servlet 发出请求时;(3)重新加载 Servlet 时(只执行一次)

2) 实例化:加载 Servlet 后,服务器创建一个 Servlet 实例。(只执行一次)

4) 请求处理:对于到达服务器的客户机请求,服务器创建针对此次请求的一个“请求”对象和一个“响应”对象。服务器调用 Servlet 的 service() 方法,该方法用于传递“请求”和“响应”对象。service() 方法从“请求”对象获得请求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service() 方法可以调用其它方法来处理请求,例如 doGet()、doPost() 或其它的方法。(每次请求都执行该步骤)

http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能在多次请求之间共享信息呢(比如实现网上商店中的购物车)?session和cookie就是为了解决HTTP协议的无状态而采用的两种解决方案。

2) 原理(通过比喻形象说明,真正原理自己总结)

a) Cookie:发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。 【卡上记录所有信息,而店家只认卡不认人。】

b) Session:发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。 【只记用户ID,而ID的详细记录放在店家的数据库里;每次凭ID检索服务器的记录。】

a) cookie数据存放在客户的浏览器上,session数据放在服务器上(sessionid可以通过cookie保存在客户端,也可以使用URL重写方式)。

b) cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session

c) session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE

d) 单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。

e) 个人建议:将登陆信息等重要信息存放为SESSION;其他信息如需保留,可放在COOKIE

14. 转发和重定向的区别

转发是在服务端直接做的事情,是对客户端的同一个request进行传递,浏览器并不知道。重定向是由浏览器来做的事情。重定向时,服务端返回一个response,里面包含了跳转的地址,由浏览器获得后,自动发送一个新request。转发像呼叫转移或者110报警中心,重定向似114查号台。

a) 区别1:跳转效率的不同

转发效率相对高;重定向效率相对低

b) 区别2:实现语句不同

转发源组件与目标组件共有同一个request数据

重定向源组件与目标组件不共有同一个request数据(可使用session共有数据)

d) 区别4:浏览器URL地址的不同

转发后浏览器URL地址保持不变(源组件地址)

重定向后浏览器URL地址改变为重定向后的地址(目标组件地址)

e) 区别5:"/"路径的含义不同

转发时"/"代表当前项目的根路径 ;重定向时"/"代表当前服务器的根路径

f) 区别6:跳转范围的不同

只能转发到同一应用中的URL(默认) ;可以重定向任何服务器、任何应用的URL

g) 区别7:刷新是否导致重复提交

转发会导致重复提交(可以通过同步令牌解决);重定向不会导致重复提交

h) 区别8:是否经过过滤器

转发不经过过滤器(默认情况);重定向经过过滤器

在JSP运行过程中,首先由客户端发出请求,Web服务器接收到请求后,如果是第一次访问某个jsp页面,Web服务器对它进行以下3个操作。

3) 执行:由.class变为.html,用Java虚拟机执行编译文件,然后将执行结果返回给Web服务器,并最终返回给客户端

如果不是第一次访问某个JSP页面,则只执行第三步。所以第一次访问JSP较慢。

16. JSP的9个内置对象及其含义

3) out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

jsp:include:在页面被请求的时候引入一个文件。

回答这个问题得先清楚Jsp的执行过程。第一次访问该jsp页面时,需经3个步骤。即翻译(由.jsp变为.java)--->编译(由.java变为.class)--->执行(由.class变为.html)。若不是第一次访问,只需经过步骤中的执行过程就行。

1)使用语法不同。动态INCLUDE用jsp:include动作实现,称为行动元素。

%>在翻译阶段执行;不会解析所要包含的页面(included.html),先合成一个文件后再转换成servlet,即先包含,后统一编译。

4)引入内容不同。动态INCLUDE主要是对动态页面的引入,它总是会检查所引入的页面的变化,如果被引入的文件内容在请求间发生变化,则下一次请求包含<jsp:include>动作的jsp时,将显示被引入文件的新内容。静态INCLUDE适用于引入静态页面(.html),include指令它不会检查所引入的页面的变化,在jsp页面转换成servlet前与当前jsp文件融合在一起,之后与主页面一起显示,常使用静态INCLUDE引入导航条、页脚等。

page:当前页面范围

session:当前会话:session在以下几种情况下失效

2) 超过最大非活动间隔时间

3) 手动关闭浏览器(session并没有立刻失效,因为服务器端session仍旧存在,超过最大非活动间隔时间后真正失效)

application:当前应用;服务器重新启动前一直有效

2) JSP使人们把显示和逻辑分隔成为可能,这意味着两者的开发可并行进行;而Servlet并没有把两者分开。

3) Servlet独立地处理静态表示逻辑与动态业务逻辑.这样,任何文件的变动都需要对此服务程序重新编译;JSP允许用特殊标签直接嵌入到HTML页面, HTML内容与JAVA内容也可放在单独文件中,HTML内容的任何变动会自动编译装入到服务程序.

5) 目前JSP主要用在视图层,负责显示,而Servlet主要用在控制层,负责调度

1) 都是Sun公司推出的动态网页技术。

1. 为什么要使用连接池?

– 一个连接对象对应一个物理连接

– 每次操作都打开一个物理连接,

– 使用完都关闭连接,造成系统性能低下。

– 客户程序得到的连接对象是连接池中物理连接的一个句柄

– 调用连接对象的close()方法,物理连接并没有关闭,数据源的实现只是删除了客户程序中的连接对象和池中的连接对象之间的联系.

  • 数据库连接的建立及关闭是耗费系统资源的操作,在大型应用中对系统的性能影响尤为明显。为了能重复利用数据库连接对象,缩短请求的响应时间和提高服务器的性能,支持更多的客户,应采用连接池技术.

2. 数据库连接池的原理。

1、数据库连接池的原理。

– 连接池解决方案是在应用程序启动时就预先建立多个数据库连接对象,然后将连接对象保存到连接池中。

– 当客户请求到来时,从池中取出一个连接对象为客户服务。

– 当请求完成时,客户程序调用close()方法,将连接对象放回池中.

– 对于多于连接池中连接数的请求,排队等待。

– 应用程序还可根据连接池中连接的使用率,动态增加或减少池中的连接数。

3. 谈谈过滤器原理及其作用?

– 过滤器是运行在服务器端的一个拦截作用的web组件,一个请求来到时,web容器会判断是否有过滤器与该信息资源相关联,如果有则交给过滤器处理,然后再交给目标资源,响应的时候则以相反的顺序交给过滤器处理,最后再返回给用户浏览器

– 一般用于日志记录、性能、安全、权限管理等公共模块。

– 主要业务代码放在doFilter方法中

– 业务代码完成后要将请求向后传递,即调用FilterChain对象的doFilter方法

– 在web.xml中增加如下代码

4. 谈谈监听器作用及其分类?

– 监听三个域对象创建和销毁的事件监听器

– 监听域对象中属性的增加和删除的事件监听器

– 监听绑定到HttpSession域中的某个对象的状态的时间监听器

jQuery的语法更加简单。

jQuery有一个庞大的库/函数。

jQuery有良好的文档和帮助手册。

DOM对象,是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象,它是对DOM对象的一种封装,jQuery对象不能使用DOM对象的方法,只能使用jQuery对象自己的方法。

普通的dom对象一般可以通过$()转换成jquery对象

由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出

例如:根据id获得页面元素$("#元素ID")

8. Ajax含义及其主要技术

Ajax (Asynchronous JavaScript and XML 阿贾克斯)不是一个新的技术,事实上,它是一些旧有的成熟的技术以一种全新的更加强大的方式整合在一起。

1) 使用CSS构建用户界面样式,负责页面排版和美工

2) 使用DOM进行动态显示和交互,对页面进行局部修改

Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。

XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。

在JSON中,有两种结构:对象和数组。

1) 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:

2) 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。例如:

1. MVC模式及其优缺点

MVC是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。

1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块和数据模块。模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性

2、视图(view) 用户与之交互的界面、在web中视图一般由jsp,html组成

3、控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的作用

1、降低代码耦合性。在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其他层中的代码。

2、有利于分工合作。在MVC模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。网页设计人员可进行开发视图层中的JSP,而对业务熟悉的人员可开发业务层,而其他开发人员可开发控制层。

3、有利于组件的重用。如控制层可独立成一个能用的组件,表示层也可做成通用的操作界面。可以为一个模型在运行时同时建立和使用多个视图。

1、增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

2、视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

3、视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

4、目前,一般高级的界面工具或构造器不支持模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成MVC使用的困难。

Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于JavaBean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器。另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。

相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。

3. Oracle完成分页功能的三层子查询语句及其含义?

4. MVC模式完成分页功能的基本思路是什么?

1)页面提交页码(第几页)到Servlet中

2)Servlet接收到页码后,将页码传递给分页工具类(PageBean)

DiskFileItemFactory:磁盘文件工厂类,设置上传文件保存的磁盘目录,缓冲区大小

ServletFileUpload:上传处理类,此类真正读取客户上传的文件,同时可以设置最大接收大小

FileItem:上传的文件对象,可以是多个文件,每个上传的文件都是一个单独的FileItem对象

我要回帖

更多关于 php登录页面完整代码 的文章

 

随机推荐