第一篇:JSP基础总结范文
JSP基础总结之一
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
总体而言,jsp就是html+java程序段。
1,Jsp语法
1.1,Jsp数据定义
声明 <%!声明 %> :<%!int i=0;%>
表达式 <%= 表达式 %>: <%= a*b*c %>(变量已经在页面当中声明)程序代码段 <% 程序代码片段 %> <% double r=5.0,s;
s=3.14*r*r;
out.print(s); %>
1.2,Jsp JSP指令
指令不是JSP代码中逻辑的一部分。相反,JSP指令只是为容器提供指导和指示,JSP指令会被JSP引擎转换为相应的Java代码,但这些Java代码并不直接产生任何可见输出,而是告诉JSP引擎如何处理JSP页面,或是如何生成Servlet类。JSP指令包括:page指令;taglib指令;include指令。
指令的形式一般为:<%@ 指令名 [...一个或多个属性...]%>。指令类似于动作,也可以有一些属性。@符号和指令名之间的空格以及最后一个属性与结束%>之间的空格都是可选的。
处理一个JSP页面:容器的角度。
容器完成的处理划分为不同阶段。
1.第一阶段,JSP页面实际上首先转换为Java源代码。这称为翻译阶段,在这个阶段,称JSP页面被翻译为JAVA源代码。java源代码按纯文本格式生成,而且是人可读的。2.第二阶段,Java源代码编译为可执行的字节码。这称为编译阶段。所得到的可执行字节码是二进制格式,可以由任何JVM执行。
3.第三阶段,执行已编译的JSP二进制码时,它会处理到来的请求。这个阶段称为请求阶段。这个阶段发生的所有事情都称为在请求时出现。
一旦被翻译和编译,就能重用
JSP二进制码来处理每一个到来的请求。这就不必为每个请求都完成翻译和编译阶段。不过,如果JSP有修改,容器必须发现这个修改,并重新翻译和重新编译页面。
page指令
page 指令是最复杂的JSP指令,它的主要功能为设定整个JSP 网页的属性和相关功能。具体是设置哪种功能,是由其属性指定的。基本语法
page 指令是以<%@ page 起始,以%>结束:
<%@ page attribute1=“value1” attribute2= “value2” attribute3=…%>
然而像所有JSP 标签元素一样,page 指令也支持另一种以XML为基础的语法,如下所示:
通常page指令位于JSP页面的顶端,在同一个JSP页面中可以有多个page指令,但不能重复指定同样的page指令。page 指令中包含的属性:
1)import 语法:<%@page import=“package.class|package.*,...”%> 说明:类似于在java中导入包一样,如果JSP页面中用到一些类,需要使用page指令的import属性导入使用的类。import设置当前JSP页面中要用到的Java类,这些java类可能是JDK的类,也可能是自定义的类。在JSP页面中也默认加入“java.lang.*;”、“java.servlet.*”、“java.servlet.jsp.*;”、“java.servlet.http.*;”。
2)session 语法:<%page session = “true|false” %> 说明:定义当前页面是否参与HTTP会话。当设置为true时,可以获得隐含的名session的对象,为false时,则不可以获得该对象。默认为true。
3)contentType 语法:<%page contentType = “mimeType[;charset=characterSet]”%> 说明:使用contentType属性可以设置JSP页面应答的MIME类型,默认值为“text/html”。另外可以定义JSP页面的字符编码方式,默认值为ISO-8859-1,即英文文本。如果在JSP中使用中文,则可以定义字符编码方式为GBK。4)isThreadSafe(慎用)
语法:<%page isThreadSafe = “true|false” %> 说明:定义当前页面是否支持线程安全。若为true,则该页面可能同时收到JSP引擎发送的多个请求;反之,JSP引擎会对收到的请求进行排除,当前页面在同一时刻只处理一个请求。默认为true。
5)info 语法:<%page info = “some text” %> 说明:info属性允许开发人员包含有关页面的文本信息,可以通过Servlet.getServletInfo()方法得到该字符串。
6)language 语法:<%page language = “java” %> 说明:language属性定义JSP使用的脚本语言,JSP容器允许使用其他语言进行JSP开发,但这些语言需要满足JSP规范中定义的规则。默认为java。
7)extends 语法:<%page extends = “jsp base class” %> 说明:extends属性用来指定生成的JSP Servlet的基类。默认为扩展JspBase类。
8)buffer 语法:<%page buffer = “8k” %> 说明:buffer属性用来指定响应的缓冲模型。默认值为8k。若设置为none,则表示该JSP页面不使用缓冲,所有响应输出孝将被PrintWriter直接写到ServletResponse中。
9)autoFlush 语法:<%page autoFlush = “true|flase” %> 说明:
10)errorPage 语法:<%page errorPage = “true|flase” %> 说明:errorPage用来设定当JSP页面出现异常时,所要转身的页面。如果没有设定,则JSP容器会用默认的当前页面来显示出错信息。例如,<%@page errorPage=“/error/error_page.jsp”%>
11)isErrorPage 语法:<%page isErrorPage = “true|flase” %> 说明:isErrorPage指定当前页面是否是错误处理页面。默认值为false。若设定为true,则JSP容器会在当前页面中生成一个exception对象。
Include指令
在页面转换期间将文件包含到jsp页面,include指令用于在jsp页面中静态包含一个文件,该文件可以是jsp页面,html页面,文本文件或一段Java代码等。
1)include语法:
<%@ include file=“url”%> file的属性值被解释为相对于当前jsp文件的URL.2)在被包含的文件中不要使用和主页重复的HTML标签。这样会影响原jsp文件中同样的标签导致错误。
因为原文件和被包含文件可以互相访问彼此定义的变量和方法,所以要避免变量和方法在命名上的问题。
注意事项
包含文件中要避免使用、、
、第二篇:JSP课程总结
JSP课程总结
1006010101 计算机1班
董楠楠
在学习这门课之前,JSP对于我来说是一个全新的领域,包括其基础的HTML静态网页的相关知识,数据库方面,服务器的作用都不了解。一开始难免的失意和紧张,觉得这门课对我来说是一种挑战。经过一个学期的课程学习以及近期的基于JSP的网盘课程设计,我对这门课终于有了初步的了解,虽然掌握得很肤浅,但内心很兴奋,很欣喜,新的语言入门很难,但我相信在日后的学习中,我会有一定的突破。
JSP的全称是Java Server Pages,它是一种动态网页技术。我们需要配置的坏境有JDK,Tomcat,还要用到Myeclips这一基础的编程工具。在学习JSP之前,由于没有网页编程的基础,便学习了HTML这种文本标记语言,自己试着去做简单的静态网站。后来学做JSP动态网站时,就涉及到了多方面的知识,JSP内部对象及内部对象所涉及的方法,JSP与数据库连接,如何去引用数据库。这门课更是巩固了JAVA这一基础编程语言,要求对JAVA掌握的要透彻,每门语言要学扎实,深入理解,都要花费很大的功夫,不是容易的事情。
通过以上知识的学习,对开发简单的动态网页有了些许的眉目,又进一步加深了对JSP的了解。比如我们此次的课设,设计一个网络硬盘,用户可以再上面上传、下载资料,存储基本信息。
JSP在工作时,首先启动服务器,并且保证应用在服务器上,客户通过浏览器发送请求,服务器接收到请求之后,查找有没有这个文件对应的JAVA文件的对象。如果没有这个文件,则需要创建(先把JSP文件转换成JAVA文件,编译成.class文件,加载类并创建对象),然后调用对象的相应方法,方法完成对用户的响应,通常输出的是HTML代码,客户端接收到HTML代码,浏览器解析这个代码生成画面。
在网站设计中,处处离不开Servlet,它充当一个控制器,负责封装数据,处理业务,页面分发。客户端发送请求至服务器,服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器,服务器再将响应返回客户端。网盘开发的整个过程中,都充分体现了MVC原理,MVC是一种架构模式,该设计模式把系统分为以下三个模块:模型层(Model):包括业务层BIZ、数据持久层DAO、实体层JavaBean ;视图层(View):对应的组件是Jsp或Html文件,此次课设对应的是Jsp文件控制器(Controller):对应的组件是Servlet。MVC模式通过引入控制器的方法将视图层与模型层解耦、分离。Model层开发又涉及到数据库连接池,连接池相当于一个容器,该容器里装有多个连接,每当有用户请求时容器就会自动拿出一个连接对象,当用户用完之后,容器又会将使用完毕的连接对象收回。
Jsp与servlet有一定的区别,Servlet可以看作是HTML的Java代码,而JSP可看作是包含 Java代码的HTML。共同点:JSP和Servlet实际上是一回事。JSP页面最终要转换成Servlet,并进行编译,在请求期间执行的实际上是编译后的Servlet。因此,JSP页面不过是编写Servlet的另一种方式。各自应用的范围:Servlet比较适合于做处理任务,如做业务逻辑;JSP适合于表示任务,如网页制作,生成动态网页。
Jsp开发中,很重要的一点便是实现Tomcat与数据库的链接,通过高级JDBC实现,基于model层的开发。在网盘的设计中也得到了充分的体现,我们写了一个数据库连接类以实现Tomcat与数据库的连接。在使用HTTP协议将客户端的请求传送到服务器端时,通过以下方法。1)get是从服务器上获取数据,post是向服务器传送数据。2)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到,POST方式,数据放置在HTML HEADER内提交。3)对于get方式,服务器端用request.getQueryString()可以获取GET请求参数的变量值,对于post方式,服务器端用request.getParameter获取提交的数据。
以上便是我学习JSP这门课的总结以及心得。
第三篇:JSP语法总结
JSP语法(1)——HTML注释
HTML 注释 在客户端显示一个注释.JSP 语法 例子 1 在客户端的HTML源代码中产生和上面一样的数据: 例子 2 在客户端的HTML源代码中显示为: 描述 这种注释和HTML中很像,也就是它可以在“查看源代码”中看到。唯一有些不同的就是,你可以在这个注释中用表达式(例子2所示)。这个表达示是不定的,由页面不同而不同,你能够使用各种表达式,只要是合法的就行。
JSP语法(2)——隐藏注释
隐藏注释 写在JSP程序中,但不是发给客户。JSP 语法 <%--comment--%> 例子: <%@ page language=“java” %>
A Test of Comments
<%--This comment will not be visible in the page source--%>第四篇:jsp选择题总结
一.选择题(每题2分,共40分)
1、page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:()。A、<%@ page %>作用于整个JSP页面
B、可以在一个页面中使用多个<%@ page %>指令
C、为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的 D、<%@ page %>指令中的属性只能出现一次
2、以下对象中作用域最大的是()。
A、request
B、session
C、application
D、page
3、编写JavaBean就是编写一个Java类,所以只要会写类就能编写一个Bean,一个完整JavaBean在类的命名上需要遵守以下规则,其中错误的是()。A、类中方法的访问属性必须是public的。
B、对于boolean类型的成员变量,允许使用is代替get。
C、类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。D、在JavaBean中定义属性时,应该定义成public。
4、以下四个选项中不属于Servlet生命周期的是()。
A、init()
B、service()
C、start()
D、destroy()
5、对于预定义<%!预定义%>的说法错误的是:()。
A、一次可声明多个变量和方法,只要以“;”结尾就行
B、一个声明仅在一个页面中有效
C、声明的变量将作为局部变量
11.哪个是JSP指令标记?C A.<% „„ %> B.<%!„„ %> C.<%@ „„ %> D.<%= „„ %> 10.下边哪个不是JSP的内置对象?C A.session B.request C.cookie D.out 12.当在JSP文件中要使用到Vector对象时,应在JSP文件中加入以下哪个语句?C A. /> B. /> C.<%@ page import=”java.util.*” %> D.<%@ page include=”java.util.*” %> 13.关于JavaBean的说法,哪个是正确的?D A.JavaBean的具体类可以不是public的。B.JavaBean可以只提供一个带参数的构造器。C.jsp:userBean可以向HTML标记一样不关闭。D.JavaBean可以保存状态。 15.要在session对象中保存属性,可以使用以下哪个语句?B A.session.getAttribute(“key”,”value”);B.session.setAttribute(“key”,”value”);C.D.16.A.B.C.D.17.A.B.C.D.19.A.B.C.D.20.A.B.C.D.21.A.B.C.D.22.A.B.C.D.23.A.B.C.D.24.A.session.setAtrribute(“key”);session.getAttribute(“key”);jsp:forward和sendRedirect都是用来做页面跳转的,描述错误的是?D forward之后可以使用原来的request对象,而且效率较高。 sendRedirect之后不可以使用原来的request对象,而且效率较低。forward地址栏不变化,只能在Web应用程序内的页面间跳转。forward地址栏变化,可以跳转到任何页面和机器。关于get和post两种请求,下列说法正确的是?A get请求是默认的。 get请求处理的数据量大小不受到限制。//get处理小数据量 post请求地址栏里是能看到数据的。post请求可以由doGet方法处理。 JSP分页代码中,哪个步骤次序是正确的?A 先取总记录数,得到总页数,再取所有的记录,最后显示本页的数据。先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。下边哪个不是MVC中的组成部分?B JavaBean FrameWork JSP Servlet 哪个不是Servlet接口的方法?D doGet方法 doPost方法 init方法 forward方法 Oracle数据库的JDBC驱动程序类名及完整包路径为:D jdbc.driver.oracle.OracleDriver jdbc.oracle.driver.OracleDriver driver.oracle.jdbc.OracleDriver oracle.jdbc.driver.OracleDriver 如果需要删除session中的某个属性key,可以调用下面的___C_方法。remove(“key”)removeAttribute(“key”)invalidate()logout()下述有关JSP和Servlet关系的论述正确的有:(两个正确答案)AB JSP能够实现功能均可由Servlet实现。B.Servlet能够实现功能均可由JSP实现。C.Servlet更适合做表现层。 D.JSP适合做控制层。 25.下面哪一个是正确使用JavaBean的方式?A A. 26.销毁一个session对象应该调用下面哪一个方法?A A.session.invalidate();B.session.expunge();C.session.destroy();D.session.end(); 4、下述选项中不属于JDBC基本功能的是:(D) A.与数据库建立连接 B.提交SQL语句 C.处理查询结果 D.数据库维护管理 5、在JSP中使用 A.name B.property C.value D.以上皆不会出现 7、在JSP中调用JavaBean时不会用到的标记是:(A) A. B. C. D. 8、关于JavaBean正确的说法是:(A) A、Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写 B、在JSP文件中引用Bean,其实就是用 9、Servlet程序的入口点是:(A) A、init()B、main()C、service()D、doGet() 10、不能在不同用户之间共享数据的方法是(A) A、通过cookie B、利用文件系统 C、利用数据库 D、通过ServletContext对象 A5.编写Servlet 的doPost方法时,需要抛出异常为()。(只选一项)A.ServletException,IOException B.ServletException,RemoteException C.HttpServletException,IOException D.HttpServletException,RemoteException ABC6.有关会话跟踪技术描述正确的是()。(选择三项) A.Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端 B.关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期 C.在禁用Cookie时可以使用URL重写技术跟踪会话 D.隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示 A7.以下()可用于检索session属性userid的值。(只选一项)A.session.getAttribute(“userid”);B.session.setAttribute(“userid”);C.request.getParameter(“userid”);D.request.getAttribute(“userid”); CD8.有关Servlet的生命周期说法正确的有()。(选择两项)A.Servlet的生命周期由Servlet实例控制 B.init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext接口的对象 C.service()方法响应客户端发出的请求 D.destroy()方法释放Servlet实例 9.在J2EE中,以下对RequestDispatcher描述正确的是(C)。(选择一项)A.Jsp中有个隐含的对象diapatcher,它的类型是RequestDispatcher B.ServletConfig有一个方法:getRequestDispatcher可以返回RequestDipatcher对象 C.RequestDipatcher 有一个方法:forward可以把请求继续传递给别的Servlet或者JSP界面 D.JSP中有个隐含的默认对象request,它的类型是RequestDipatcher 10.在WEB应用程序的目录结构中,在WEB-INF文件夹外的文件为(A)。(只选一项)A..jsp文件 B..class文件 C..jar文件 D.web.xml文件 11.给定一个Servlet程序的代码片段,如下:(B)Public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException { request.getSession().getAttribute(“A”);//第二行 } 假定第二行返回的对象引用不是null,那么这个对象存储在(B)范围中。(选择一项)A.page B.session C.request D.application 12.在J2EE中在servletl中的doGet和doPost方法中只有如下代码:(D) request.setAttribute(”jb”,”aPtech”); response.sendRedirect(”http://localhost:8080/servlet/Servlet2”); 那么在Servlet2 中使用()可以把属性jb的值取出来。(选择一项)A.String str = request.getAttribute(“jb”);B.String sir =(String)request.getAttribute(“jb”); C.Object str = request.getAttribute(“jb“); D.取不出来 13.给定一个Servlet的代码片段如下:(A)Public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ ______ out.println(“hi kitty!”);out.close();} 运行次Servlet时输出如下: hi kitty!则应在此Servlet下划线处填充如下代码。(选项一项) A.PrintWriter out = response.getWriter();B.PrintWriter out = request.getWriter();C.OutputStream out = response.getOutputStream();D.OutputStream out = request.getWriter(); 14.在Servlet中,下列语句可以正确获取PrintWriter对象的是(C)。(只选一项)A.PrintWriter out= request.getWriter();B.PrintWriter out = request.getPrintWriter();C.PrintWriter out= response.getWriter();D.PrintWriter out = response.getPrintWriter(); 15关于session的使用,下列说话正确的是(AC)。(选择两项)A.不同的用户窗口具有不同的session B.不同的用户窗口具有相同的session C.session可能超时间 D.Session永远不可能超时 16在Servlet过滤器的生命周期方法中,每当传递请求或响应时,web容器会调用(C)方法。(选择一项)A.init B.service C.doFilter D.destroy 17.在 J2EE中,便用 Resultset对象的 next()方法移动光标时,如果超过界限,会抛出异常,该异常通常是(C)。(选择一项)A.InterruptedExceptlon B.AlreadyBoundExceptlon C.SQLException D.NetExcePtlon 18.在J2EE中,对于Httpservlet类的描述,错误的是(A)。(选择一项) A.我们自己编写的Servlet继承了Httpservlet类,一定需覆盖doPost或者doGet B.HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法 C.HttpServlet类中处理客户请求和响应时所使用的两个接口是:HttpServletRequest和HttpServletResponse. D.我们自己编写的servlet继承了Httpservlet类,一般只需要覆盖doPost方法,不必覆盖servive()方法,因为一个service()方法会调用doPost或者doGet方法 19.Servlet中,HttpServletResponse的(C)方法用来把一个Http请求重定向到另外的URL。(选择一项)A.sendURL()B.redirectURL()C.sendRedirect()D.redirectResponse() 20在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是(B)。(选择一项) Public class Servlet1 extends HttpServlet{ Public void init()throws ServletException{ } Public void service(HttpServletRequest request,HttpServletResponse response) Throws ServletException,IOException{ PrintWriter out = response.getWriter(); Out.println(“hello!”);} } A 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!C 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中看不到任何输出的文字 D 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到运行期错误信息J2EE中,HttpServletRequest类的(C)方法用返回与当前请求相关联的会话,如果没有,则返回null。(选择一项)A getSession()B getSession(true)C getSession(false)D getSession(null)在J2EE中,在web.xml中,有如下代码: public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException ,IOException { System.out.println(“get”); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException ,IOException { System.out.println(“post”); } A get B post C get post D post get Servlet 可以在以下(A)三个不同的作用域存储数据。 A 请求、会话和上下文 B 响应、会话和上下文 C 请求、响应和会话 D 请求、响应和上下文 25在J2EE中,重定向到另一个页面,以下(C)语句是正确的。 A request.sendRedirect(“http : // www.xiexiebang.com”);B request.sendRedirect();C response.sendRedirect(“Http : // www.xiexiebang.com”);D response.sendRedirect(); 26在J2EE中,假如HttpSession的getLasAccessTime()方法返回值为x,getCreationTime()方法返回值为y,则为x-y(C)。 A 两个连续请求之间间隔的最长时间 B 最近的两个连续请求之间的时间间隔 C 最后使用session发送请求的时间和session创建时间的间隔 D 最后使用session发送请求的时间 27J2EE中,Servlet API 为使用Cookie,提供了(A)类。 A Javax.servlet.http.Cookie B Javax.servlet.http.HttpCookie C Javax.servlet.Cookie D Javax.servlet.http.HttpCookie http是一个(A)协议 A.无状态 B.有状态 C.状态良好的 D.局域网 39、Servlet程序的入口点是:(A)A、init() B、main() C、service() D、doGet() 30在J2EE 中,Servlet从实例化到消亡是一个生命周期。下列描述正确的是(BD)。(选择两项) a) 在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束Servlet就消亡了 b) init()方法是包容器调用的Servlet实例的第一个方法 c) 在包容器把请求传送给Servlet之后,和在调用Servlet实例的doGet或者doPost方法之前,包容器不会调用Servlet实例的其他方法 d) 在Servlet 实例消亡之前,包容器调用Servlet实例的destroy()方法 31下列那个类是抽象类(B)A ServletConfig B HttpServlet C Cookie D HttpServletRequest Http协议的状态码(D)表示文件没有创建 A 200 B 400 C 500 D 404 33在HTTP协议中,用于发送大量数据的方法是(B)A get B post C put D options 34.在JSP中,只有一行代码:<%=A+B%>,运行将输出(D)。(选择一项) a)A+B b)AB c)113 d)没有任何输出,因为表达式是错误的 35.在JSP中,以下的page指令设置了使用的脚本语言是Java,且导入了java.rmi.*和java.util.*包.正确的是(B).(选择一项) a)<%@ page Language=“Java”,import=”java.rmi.*;java.uitl.* ”%”> b)<%@ page language=“Java” Import=”java.rmi.*,java.uitl.* ”%”> c)<%@ page language=“Java”;import=”java.rmi.*;java.uitl.* ”%”> d)<%@ page language=“Java” import=”java.rmi.* ,java.uitl.* ”%> 36.在JSP中,<%=”1+4” %>将输出(A)。(选择一项)a)l+4 b)5 c)14 d)不会输出,因为表达式是错误的 37.在JSP中,page指令的(b)属性用来引入需要的包或类。(选择一项)a)extends b)import c)languge d)contentType 38.在JSP中,若要在JSP正确使用标签: 39.在JSP中,test.jsp文件如下,试图运行时,将发生(D)。 <% String str = null;%> str is <%= str%> a)转译期有误 b)编译Servlet源码时发生错误 c)执行编译后的Servlet时发生错误 d)运行后,浏览器上显示:str is null 40.给定以下JSP代码片段,有2个客户依次浏览该JSP;且每个客户只浏览一次,第2个客户会看到浏览器显示(B)。(请选择一项)<%int x = 1;%> <%!int x = 10;%> X =< %= ++x%> a)X = 1 b)X = 2 c)X = 10 d)X = 11 41.在JSP中,给定以下JSP代码片段,运行结果是(A)。 <% int x=5;%>局部 <%!int x=7;%>成员变量 <%! Int getX(){ return x;} %> <% out.print(“X1=”+x);%> <% out.print(“X2=”+getX()); %> a)X1=5 X2=7 b)X1=5 X2=5 c)X1=7 X2=7 d)X1=7 X2=5 42.给定JSP文件代码如下: <%!static int I=0;int j=0;%> for(;j++<2;){ out.print(I++);out.print(“ ”);} %> JSP期末复习总结 作者:张焕 HTML基础知识:HTML常用标签和元素 charset=”gbk” //设置字符集第五篇:jsp知识点总结
定义预先排版的文本 自动换行与首行缩进
定义一个段落
插入单个换行
//插入横线 书签链接 书签链接锚点
1、JSP容器
一个完整的JSP页面通常需要具有几个要素:JSP标记。JSP标记包括Action、Custom标记等。JSP标签既可以是单一标签,也可以是成对标签。
2、JSP注释
在JSP页面中,注释的内容不会被执行,有以下几种注释方式: <%---注释内容
--%> <%// 注释内容
%> <%/* 注释内容
*/%>
3、JSP脚本元素
(1)声明(可以是变量或方法)P116 <%!声明部分;//成员变量 %>(2)小脚本(Scriptlet)<% Java代码//局部变量 %>(3)表达式
JSP表达式用来把Java数据直接插入到输出。其语法如下:
<%= Java Expression %>
计算Java表达式得到的结果被转换成字符串,然后插入到页面。计算在运行时进行(页面被请求时),因此可以访问和请求有关的全部信息。
需注意:不能使用分号“;”作为表达式的结束符。(4)注意:
每一个jsp文件会被转化成为一个servlet,也就是一个java类 在<% %>里面定义的变量在_jspservice方法中,是局部变量 在<%!%>里面写的东西是jsp生成的这个类的成员变量
4、JSP指令元素
只是告诉jsp引擎对jsp页面如何编译,不包含业务逻辑,也不修改输出流。编译指令能够改变把JSP程序转换成Servlet程序代码的结果。也就是说,使用不同的编译指令会使JSP程序有不同的执行方式。
(1)page指令 <%@ page [language=“java”] [extends=”package.class”] [import=”{package.class|package.*}”] [session=“true”] [buffer=“none|8kb|sizekb”] [autoFlush=“true|false”] [inThreadSafe=“true”] [info=“text”] [errorPage=“relativeURL”] [contentType=“mimeType”] [isErrorPage=“true”] %>
<%@page%>指令用作对整个JSP页面的初始设置 page指令可以在一个页面中出现多次
page指令中的属性一般只出现一次,import除外 ****两数相除程序**** 文件名称: compute.htm
文件名称:check.jsp <%@ page language=“java” contentType=“text/html;charset=GBK” errorPage=“error.jsp” %><%
int checki=0;
int checkor=0;
int result=0;
try{
checki=Integer.parseInt(request.getParameter(“value1”));
}
catch(NumberFormatException 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);
%>