JSP(1)之web开发基础、JSP语法及内置对象

1、服务器,网络中的一台主机,由它提供web、ftp等网络服务。


2、在请求响应过程中,如果在服务器上存放的是静态HTML网页,服务器将原封不动地返回网页中的内容,如果存放的是动态网页,服务器会执行动态网页,执行的结果是是生成一个HTML文件,再将这个文件发给客户端浏览器,客户端浏览器将其解释为用户见到的页面。


3、JSP支持跨平台、可重用。


4、执行效率高:当JSP第一次被请求时,JSP页面转换成Servlet,然后被编译成*.class,文件,以后(除非页面有改动或者web服务器被重新启动)再有客户请求该Jsp页面,Jsp页面不再被重新编译,而是直接执行已经编译好的*.class文件,因此 执行效率高。


5、ASP缺点:脚本语言,无法进行传统编程那样的底层操作;通过解释执行代码,运行效率低;脚本和HTML代码混合在一起,不便于管理、维护。


6、PHP缺陷:不支持真正意义上的面向对象编程,接口支持不统一,缺乏正规的支持,不支持多层结构和分布式计算等。


7、JSP运行原理:当用户在地址栏输入请求的时候,如请求myfirst.jsp时,就会对web服务器上的myfirst.jsp页面产生请求,当服务器上的myfirst页面第一次被请求的时候,JSP引擎首先转译JSP页面文件,生成一个Java文件,本质上是一个JavaServlet文件,这个文件名是myfirst_jsp.java,Jsp引擎调用Java编译器编译这个文件,形成Java字节码文件:myfirst_jsp.class,响应客户请求,执行myfirst_jsp.class的结果是发送给客户端一个HTML文件。
当页面再次被请求的时候,JSP引擎将直接执行这个字节码文件来响应客户的请求。
当多个客户同时请求同一个JSP页面时,Tomcat服务器为每个客户启动一个线程,该线程执行常驻内存的字节码文件来响应客户请求。


8、Servlet:使用Java Servlet API的相关类和方法所编写的Java类为Servlet类。Servlet类生成的对象可以访问配置有JSP运行环境的服务器的各种资源。


9、JSP中可以嵌入JSP标记,Java代码,JSP页面最终会编译成Servlet并执行,以响应客户的请求。


10、JavaBean:一个可重用的软件组件。实际上JavaBean就是一种Java类,一般负责web应用系统的业务逻辑处理部分。JavaBean类实例化的对象称为Bean。


11、JSP+JavaBean模式:JSP负责页面的实现、页面预处理和跳转控制,JavaBean负责业务罗杰数据处理。小规模web应用


12、JSP+JavaBean+Servlet模式:JSP负责页面处理,JavaBean负责业务逻辑和数据处理,Servlet负责预处理和分发页面的请求。较大规模web应用。


13、sun将JDK1.2后版本称为Java2(1.3~1.6)。


14、表单:在网页中主要用于采集和提交用户输入的信息,是网站和访问者之间的互动窗口。 


15、表单标签<form action="" ...>action:处理表单提交数据的程序的URL地址,如果为空,则使用当前的文档的URL。


16、表单中 enctype属性:指定将数据发送到服务器时浏览器使用的编码方式


17、表单中method的方式:post:地址栏看不见表单的提交信息,传送的数据量比get方式多很多;get:在地址栏中可以看见,传送量一般在1KB以下。


18、 输入标签:<input name="" type="">  name:表单输入区域的名称,type:定义表单输入区域的类型,有10种。


19、css规则的定义:选择器{属性:值}如:body{color:green}
     选择器有以下三种:标签选择器p{属性:值},id选择器:若HTML中<p id="red" >红色</p>则#red{color:red};类选择器:如<h1 class="red">红色</h1>,则.red{color:red}.
     属性有多个,每个用;隔开,如果被分组的选择器有多个,且分享相同的规则,则每个选择器用,隔开。


20、加入样式表:1、定义内部样式块对象:<head><style type="text/css"><!--样式表定义--> </style></head>
2、内联定义:在对象的标签中使用对象的style属性定义相应的样式表,如:<p style="color:red">红色</p>
3、连接外部样式表:先建立外部样式表文件.css,然后在<head>标签中使用link对象进行链接。如<head><rel=stylesheet href ="http://www.cd.com" type="text/css"></head>


21、JavaScript:一种基于对象和事件驱动并且具有安全性能的脚本语言,是一种解释性的语言。


22、JavaScript中如果是静态对象,则在引用该对象的属性或者方法的时候,不需要为它创建实例,动态对象则在引用它的对象或者方法的时候,要创建一个实例。


23、JavaScript可以在HTML中任何位置插入,但如果要在声明的框架的网页中插入,必须放在<frameset>之前,否则不会执行。
有两种插入方法:
1、<script language="JavaScript"><!----></script>
2、把JavaScript代码写到另一个文件中,通常以.js为扩展名,然后<script src="java Script.js"></script>标签将其嵌入到文档中。


24、JavaScript中任意类型之间可以相互转换,但是必须先赋值后使用。




25、JavaScript运算符三个等号:===:只有两边的类型一直,且值也相等的时候,才为true。!==:在类型不同或者类型相同但是值不等时为true。


25、JavaScript函数定义的时候使用关键字:function,this指当前对象而不是指针


26、JavaScript中with用来指定默认对象:with(对象名){语句序列}


27、JSP自身注释:<%--注释部分--%>或者<%/**注释部分**/%>
    客户可以看到的注释,又称为嵌入式注释:<!--注释部分-->,会在浏览器中显示,JSP引擎不作任何解释,在这种注释中可以出现动态数据,注视中的动态数据是通过表达式来表示的。如:<!--注释<%=expression%>注释-->,如:<!--现在的时间为:<%=(new java.util.Date()).toLocaleString()%>-->


28、JSP声明元素格式:<%!声明语句%>,如:声明一个整型变量i:<%!int i;%>或者直接赋初值<%!int i=1;%>,声明一个方法:<%!public void Add(){ i=m+n;}%>


29、JSP表达式:<%=expression%>执行后会被自动转换成字符串,然后显示出来。
注意:不能用分号";"作为表达式结束符号
在Servlet中处理表达式只是将JSP表达式外包装了out.println()方法。


30、JSP指令包括Page指令,Include指令,Taglib指令。不会输出到客户端,有效范围仅限于使用该指令的JSP网页。格式:<%@指令名称 属性1=  ,属性2=,...%>


31、Page指令:除import属性外,其他指令只能使用一次page指令为该属性设定值,即使设定的值相等也不行。例:<%@page import="java.util.*","java.io.*","java.sql.*"%>


32、Page中language属性中目前只能使用的脚本语言只有Java;
    session属性:指定一个HTTP会话中是否有该页面参与,取值为true或者false;         isErrorPage属性:设定当前的JSP页面是否可以作为另一网页的错误处理页面取值为true或者false;
    errorPage:设定当JSP页面出现异常时,所要转向的页面。
    contentType:指定JSP字符的编码和JSP页面相应的MIME类型




33、contentType中取值有:
   text/html:网页形式显示(默认值);
application/msword:word文档形式显示
application/vnd.ms-excel:excel表格形式显示
application/vnd.ms-powerpoint:powerpoint演示文稿形式显示


34、include指令元素:将另一个文件包含到当前JSP页面中,这个文件可以是文本文件也可以是JSP文件。如:<%@include file="logo.html"%>,此过程为静态的。


35、taglib指令元素:定义一个标签库及自定义标签的前缀。语法:<%@taglib url="扩展标签的URL" prefix="扩展标签的前缀"%>


36、JSP标准操作指令:
    include动作:在当前JSP页面中加入静态和动态的资源。可以传递参数。如:
<jsp:include page="URL">
  <jsp:param name="参数名称1" value="值1">
  <jsp:param name="参数名称2" value="值2">
</jsp:include>




37、include指令和include动作的区别:
    都可以完成文件的包含,
    区别:include指令只能静态地插入文件,指令在编译时执行,即即在编译时将需要插入文件中的内容插入当前网页中,生成Java文件;include动作是动态地插入文件,在编译时并不将需要插入的文件内容插入到当前网页,操作在接收请求时执行。
    所以当插入文件改变时,include指令要重新编译当前页面,生成新的Java文件,否则当前网页将不会变化,而include操作则不存在重新编译的问题。


38、forward操作:将客户所发出来的请求,从一个JSP页面转交给另一个JSP页面,将会引起web服务器上的请求目标转发。注意:<jsp:forward>标签后的程序将不能执行。可以传递参数,同include动作传参。
   
39、plugin操作:该指令的作用是确保一个Java插件软件可用,可以在浏览器中显示或者播放一个对象(applet和bean)。语法格式:
  <jsp:plugin type="bean|applet" Code="保存类的文件名称" Codebase="类路径"> 
  <jsp:params>  
  <jsp:param name="参数名称1" value="值1">
  <jsp:param name="参数名称2" value="值2">
     </jsp:params> 
<jsp:fallback>错误信息</jsp:fallback>
  </jsp:plugin>
插件没有启动,<jsp:fallback>则会提供一个错误信息。如果插件已经启动,但是applet或者bean没有启动,那么插件通常会弹出一个窗口,向用户说明错误。


40、useBean动作:定义在JSP中网页中要使用的JavaBean对象。


41、out对象是javax.servlet.jsp.JspWriter类的一个子类的对象,作用:将信息回送到客户端的浏览器中。out的生命周期是当前页面,对于每一个JSP页面,都有一个out对象。常用方法有:print(),println(),write(),newLine(),flush(),close()等。


42、request对象:Javax.servlet.HttpServletRequest子类的对象,客户端请求一个JSP页面时,JSP容器会将客户端的请求信息包装在这个request对象中。取值时用此格式:String strUserName=request.getParameter("userID");
    
43、request:setAttribute(name,值):设定名字为name的request参数的值,该值由"值"指定。getAttribute(name):取得name指定的参数值


44、汉子编码:当用request.getParameter得到Form中的元素时,默认的情况字符编码是:ISO-8859-1,这种编码不能正确显示汉字。解决方法:
    ①执行操作之前,设置request编码格式:request.setCharacterEncoding("GBK");
    ②转换字符编码:<%String str=request.getParameter("boy");
                       byte b[]=str.getBytes("ISO-8859-1");
                       str=new String(b);%>


45、response对象:javax.servlet.http.HttpServletResponse类的子类对象,作用:封装JSP程序产生的响应,并发送到客户端。


46、网页重定向:sendRedirect()重定向到新的页面中去,重定向后的代码将不再执行。


47、sendRedirect()和<jsp:forward>的区别:
①sendRedirect()可以不用直接编码URL就可以实现传递参数,如:Response.sendRedirect("example.jsp?p=234")传递参数p,值为234
②<jsp:forward>两个页面之间可以通过request对象共享数据,而sendRedirect()不支持这种数据共享。


48、response中能动态地设置ContentType属性,MIME的类型有pdf、word、excel等等。


49、会话:从一个客户打开浏览器并且连接到服务器开始,一直到这个客户关闭浏览器视为一个对话。


50、会话id:当一个客户通过浏览器与服务器建立连接发出第一个请求时,服务器就会为这个客户分配一个session对象,并为这个session对象分配一个String类型的id号,JSP引擎在响应客户请求的同时将id发往客户端,并写入客户端的cookie中,这样服务器就可以通过不同的会话id识别一个客户,可以跨网页分享数据。




51、简单概括:只要浏览器没关闭,session id就不会变


52、会话的结束:如果不定时地清除会话,服务器的存储空间将被耗尽。一般在服务器默认设置了一个30分钟的会话超期时间,让客户停止活动后 session对象自动失效。


53、设置会话超时周期可以使用session的setMaxInactiveInterval(),也可以使用web.xml文件在tomcat上部署,即在web.xml中找到对应的<session-timeout>标签,设置更改时间;当不需要会话时,可以使用session的invalidate()方法关闭一个会话。


54、application对象是以服务器为主角,服务器的启动和关闭决定了application的生命周期,开始于任何一个JSP被开始执行时,终止于服务器的关闭。每一个应用程序的所有线程共享这个application对象。


55、application是javax.servlet.ServletContext类的一个实例。


56、application的getAttribute方法返回一个Object类型的数据,使用时要进行数据类型转换。


57、application可以应用于网站计数器,如果是不让网页刷新时对同一个用户计数,则可以用session.isNew()判断。


58、cookie是服务器发送给浏览器的体积很小的纯文本文件,用户以后访问同一个web服务器时都会把它们原样地发送给服务器。通过让服务器读取它们原先保存在客户端的信息,提供一系列方便。用途如:在线交易过程中标识用户身份、安全性能不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等。


59、每个cookie大小限制为4kb,浏览器一般只能存放300个cookie,每个站点最多存放20个cookie,所以不会塞满客户的硬盘。


60、创建cookie:Cookie cookie=new Cookie(Cookie名字,"内容");


61、读取cookie值:getCookie()方法在程序中读取Cookie值,返回包含所有Cookie的值的数组。如:
Cookie[] 数组名=request.getCookie();
循环取出每一个Cookie变量;
Cookie变量.getName();
Cookie变量.getValue();


62、config对象:用于初始化参数


63、exception对象:当JSP对象在运行过程中发生例外时,就产生这个对象,即被调用的错误页面的结果(isErrorPage属性值为true)


64、page对象:指JSP本身,如同引用this


65、pageContext对象:由JSP引擎产生的servlets代码使用,用于访问JSP中的各种可用范围。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值