1、jsp知识点总结JSP期末复习总结作者:张焕HTML基础知识:HTML常用标签和元素charset=”gbk” /设置字符集 /设置背景颜色 /设置背景图片定义预先排版的文本自动换行与首行缩进 定义一个段落 插入单个换行字体设置 /插入横线书签链接书签链接锚点1、JSP容器一个完整的JSP页面通常需要具有几个要素:JSP标记。JSP标记包括Action、Custom标记等。JSP标签既可以是单一标签,也可以是成对标签。2、JSP注释在JSP页面中,注释的内容不会被执行,有以下几种注释方式:3、JSP脚本元素(1)声明(可以是变量或方法) P116(2)小脚本(Scriptlet)(3)表达式J
2、SP表达式用来把Java数据直接插入到输出。其语法如下: %= Java Expression % 计算Java表达式得到的结果被转换成字符串,然后插入到页面。计算在运行时进行(页面被请求时),因此可以访问和请求有关的全部信息。 需注意:不能使用分号“;”作为表达式的结束符。(4)注意:每一个jsp文件会被转化成为一个servlet,也就是一个java类在里面定义的变量在_jspservice方法中,是局部变量在里面写的东西是jsp生成的这个类的成员变量 4、JSP指令元素只是告诉jsp引擎对jsp页面如何编译,不包含业务逻辑,也不修改输出流。编译指令能够改变把JSP程序转换成Servlet程
3、序代码的结果。也就是说,使用不同的编译指令会使JSP程序有不同的执行方式。 (1) page指令指令用作对整个JSP页面的初始设置page指令可以在一个页面中出现多次page指令中的属性一般只出现一次,import除外*两数相除程序*文件名称: compute.htm 整 数 除 法 运 算 被除数: 除数: 文件名称:check.jsp 错误异常检测页面 % int checki=0; int checkor=0; int result=0; try checki=Integer.parseInt(request.getParameter(value1); catch(NumberForma
4、tException nfex) throw new NumberFormatException(被除数不是整数!); try checkor=Integer.parseInt(request.getParameter(value2); catch(NumberFormatException nfex) throw new NumberFormatException(除数不是整数!); result=checki/checkor; out.println(正确运算结果:); out.println(checki+/+checkor+=+result); % 返回 文件名称:error.jsp
5、错误处理页面 错误信息 返回 (2)include指令 用于JSP页面转换成Servlet时引入其他文件。该指令语法如下: 这里所指定的URL是和发出引用指令的JSP页面相对的URL Include指令只有一个属性:file。(3)taglib指令Taglib 指令定义一个标签库以及其自定义标签的前缀。这里自定义的标签含有标签和元素之分。5、JSP动作(1)Jsp:include动作用于在当前的JSP页面中加入静态和动态的资源。上节介绍的include指令是一种JSP指令,它包含的文件只能是静态的。有page和flush两个属性:Page可以代表一个相对路径,即你所要包含进来的文件位置或是经过
6、表达式运算出来的相对路径。Flush接受的值为boolean,ture:缓冲区满时,将会被清空。默认值为false。(2)Jsp:forward动作用来把当前的JSP页面重导到别一个页面上,用户看到的地址是当前页面的地址,而内容则是另一个页面的。 (3)动作用于传递参数,必须、动作一起使用。 (4)动作 Id=”beanName” scope=”page|request|session|application” page bean能在当前JSP页而又及此页面包含的所有静态文件中被使用。 (5)动作jsp:plugin动作用来根据浏览器的类型,插入通过Java插件 运行Java Applet所必
7、需的OBJECT或EMBED元素。 (6)(7)jsp:param name=“” value=“”(8) Jsp:setPropety动作用来在一个JSP页面中设置已创建的bean的属性值,它的语法格式如下: 其中name属性对应值必须为创建组件时的id值,property指定要设定属性的属性名,value为设定的属性值。 (9) Jsp:getProperty动作用来返回一个已创建的bean的属性值。它的作用与jsp:setProperty正好相反。 例如,下面的语句从bean实例myCar中返回一个car属性值。 6、会使用javaBean 一个完整JavaBean在类的命名上需要遵守4
8、点。 1、如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,在类中使用两个方法: getXxx(),用来获取属性xxx。 setXxx(),用来修改属性xxx。 2、对于boolean类型的成员变量,允许使用is代替get和set。 3、类中方法的访问属性必须是public的。 4、类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。 在JSP中专门提供三个页面指令来和JavaBean交互,分别是jsp:useBean指令、jsp:setProperty指令和jsp:getProperty指令。 jsp:useBean指令指定JSP页面中包括的JavaBean
9、,具体的语法格式为: 其中,id是当前页面中引用JavaBean的名字,JSP页面中的Java代码将使用这个名字来访问JavaBean。scope:指定JavaBean的作用范围,可以取4个值。 page:JavaBean只能在当前页面中使用。在JSP页面执行完毕后,该JavaBean将会被进行垃圾回收。 request:JavaBean在相临的两个页面中有效。 session:JavaBean在整个用户会话过程中都有效。 application:JavaBean在当前整个Web应用的范围内有效。 jsp:setProperty指令功能是设置JavaBean的属性。 jsp:getProper
10、ty指令功能是得到某个JavaBean的属性值。JavaBean 应用实例:这个程序是我在网上找的javabean然后修改的,考试应该是和这个类似,时间关系,没有表注释,如果有什么问题,可以交流一下哈j6_01.java文件的代码:package Bean;import java.io.*;public class j6_01 int radius; public j6_01() radius=1; public int getRadius() return radius; public void setRadius(int newRadius) radius=newRadius; publi
11、c double circleArea() return Math.PI*radius*radius; public double circlLength() return 2.0*Math.PI*radius; j6-03.jsp的代码: 调用jsp:setProperty之前: 圆的半径是: 圆的周长是: 圆的面积是: 调用jsp:setProperty之后:圆的半径是: 圆的周长是: 圆的面积是: 7、作用域: page 只作用在当前的JSP页面范围内 request 作用范围是一次用户请求 session 作用范围是一段用户持续和服务器所连接的时间 application 指定该属性的
12、生命周期和JSP应用程序的周期相同8、内置对象 request对象 response对象 pageContext对象 session对象 out对象 application对象 config对象 page exception(1) request 用户在使用request变量时,会通过它所引用的HttpServletRequest对象向JavaServer Pages提供了以下类型的服务: 访问请求参数 在请求作用域中管理属性 获取cookie 访问请求报头 访问请求行元素 访问安全信息 访问国际化信息cookie的程序: Cookie c1=new Cookie(cookie1,cookie
13、test1); response.addCookie(c1); Cookie cookiearg=request.getCookies(); for(int i=0;icookiearg.length;i+) if(cookieargi.getName().equals(cookie1) out.print(cookieargi.getValue(); break; (2) responseHttpServletResponse对象具有页面作用域,这意味着它只在JSP页面内有效,只要_jspService方法返回,响应就会超出作用域。与request对象不同,request对象是生成的服务器程
14、序的_jspService方法的一个形参。下面这段代码取自Tomcat容器所生成的服务器程序,其中显示了这个参数。(3) sessionsession对象引用javax.servlet.http.HttpSession对象,它封装了属于客户会话的所有信息。按照设计,HTTP是无状态的。服务器程序和JavaServer Pages通过提供几种支持会话跟踪的机制而增强了这种无状态结构。(4) outJavax.servlet.jsp.JspWriter对象是通过out内置对象来引用的。JspWriter模拟一个java.io.PrintWriter的行为,但是只要出现I/O错误,它就在其所有显示方
15、法中产生java.io.IOException异常。如果JSP页面是缓冲的(默认行为),那么JspWriter对象还模拟一个java.io.BufferedWriter。 (5) applicationapplication隐含对象封装了Web应用中所有Servlet、JSP页面、HTML页面和其他资源的集合属性。此对象实现了javax.servlet.ServletContext在_jspService()方法开始自动被创建。它提供关于服务器版本、应用级初始化参数和应用内资源绝对路径的信息。 Application变量是一个对web application有效的全局变量,在保存一些全局有效的
16、值时非常有用 一旦创建,除非服务器关闭,否则一直保持下去 在引用application变量时,必须使用同步(因为可能有多个用户同时在访问它)。并且需要测试application的属性是否已经存在相关方法: application.setAttribute() Application.getAttribute() 当服务器启动时,就产生了这个application对象,当客户在访问的网站的各个页面之间浏览时,这个application对象都是同一个,和session的区别在于,application对所有客户来说都是同一个,所有客户共享这个内置的applicationapplication程序:
17、if(application.getAttribute(count)=null) application.setAttribute(count,1); else application.setAttribute(count,String.valueOf(Integer.parseInt(application.getAttribute(count).toString()+1); (6) pagepage对象是可以从JSP脚本程序和表达式中获得的一隐含变量,它对应于处理当前请求的JSP页面的实现类的实例。JSP页面实现类是在首次执行JSP页面时自动生成的。(7) exceptionexcepti
18、on对象提供了对出错的JSP页面内的异常的访问,这些出错的JSP页面是使用page指令的errorPage属性声明的。_jspService方法捕获到JSP页面内产生的异常,然后将其重定向到一个默认页面或一个声明的错误页面。如果用户没有声明为错误页面的任何页面中,该对象都无法使用。一个页面是使用page指令的isErrorPage属性被声明为错误页面的。(8) config 提供了访问这些参数、servlet上下文件(应用)和servlet名字的方法 。 9、servletServlet是在服务器端运行的,是javax.servlet包中HttpServlet类的子类,由服务器完成该子类的创建
19、和初始化。 Servlet的生命周期主要由3个过程组成。 1、init()方法:服务器初始化Servlet。 2、service()方法:初始化完毕,Servlet对象调用该方法相应客户的请求。 3、destroy()方法:调用该方法消灭Servlet对象。 其中,init()方法只在Servlet第一次被请求加载的时候被调用一次,当有客户再请求Servlet服务时,Web服务器将启动一个新的线程,在该线程中,调用service方法相应客户的请求。 doGet和doPost方法分别对应Form表单的属性method属性,method属性有两种Get和Post。servlet实例:HelloWo
20、rld.javapublic class HelloWorld extends HttpServlet public HelloWorld() super(); public void destroy() super.destroy(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(text/html); PrintWriter out = response.getWriter(); out.println(); out.println(); out.println(Hello World!); out.println(); out.println(); out.println(Hello World!); out.println(); out.println(); public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1