Web开发应用期末考试要点.doc

上传人:仙人指路1688 文档编号:4105780 上传时间:2023-04-04 格式:DOC 页数:16 大小:384KB
返回 下载 相关 举报
Web开发应用期末考试要点.doc_第1页
第1页 / 共16页
Web开发应用期末考试要点.doc_第2页
第2页 / 共16页
Web开发应用期末考试要点.doc_第3页
第3页 / 共16页
Web开发应用期末考试要点.doc_第4页
第4页 / 共16页
Web开发应用期末考试要点.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《Web开发应用期末考试要点.doc》由会员分享,可在线阅读,更多相关《Web开发应用期末考试要点.doc(16页珍藏版)》请在三一办公上搜索。

1、Web一、如何配置JDK和JSP第一步:下载jdk和tomcat第二步:安装和配置你的jdk和tomcat:执行jdk和tomcat的安装程序,然后设置按照路径进行安装即可。1.安装j2sdk配置环境变量,2然后安装Tomcat配置环境变量。第三步:建立自己的jsp app目录第四步:建立自己的Servlet二、关于JSPJSP 的执行过程主要包括以下步骤:1客户端发出Request请求;2JSP 容器将JSP 转译成Servlet 的源代码;3将产生的Servlet 的源代码经过编译后,并加载到内存执行;4把结果Response 响应至客户端。 JSP特点:1、 一次编写,各处执行。2、 搭

2、配可重复使用的组件。3、 采用标签化页面开发。4、 实现了角色的分离。(JSP规范允许将工作分为两类:页面的图形内容和页面的动态内容) 5、N层企业应用架构的支持。JSP页面的执行过程:当服务器上的一个JSP页面第一次被请求时,Web服务器上的JSP引擎首先将JSP页面编译成Servlet,然后执行该Servlet。该Servlet主要完成以下2项任务:(1)把JSP页面中的HTML标记交给客户端的浏览器去解释执行。(2)把JSP页面中的JSP指令标记、动作标记、JSP声明、代码段和表达式交给服务器去执行,然后将结果送给浏览器。JSP动作标记是JSP页面中使用的一种特殊的标记,它利用XML语法

3、格式的标记来控制JSP引擎完成某种功能。 常用的JSP动作标记包括: :在页面被请求的时候引入一个文件:把请求转到一个新的页:根据浏览器类型为Java插件生成OBJECT或EMBED标记:寻找或者实例化一个JavaBean :设置JavaBean的属性:输出某个JavaBean的属性动作可包含一个动态文件也可包含一个静态文件三、关于tomcat运行时占用的系统资源小,扩展性好Tomcat 是一个轻量级应用服务器Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。独立的Servlet容器是Tomcat的默认模式。四、include指令和include 动作区

4、别:(1)嵌入的内容。include指令嵌入的是静态的文本或页面,而include动作包含的可以是静态或动态内容。(2)嵌入被包含页面的时间。include动作在处理请求时才将被包含页面嵌入进来,而include指令是在JSP文件被转换成Servlet的时候引入文件。(3)共享局部变量。用include动作时,在页面中声明的变量不可用于另一文件;而在用include指令时,当前页面和被包含页面可以共享变量。(4)修改的生效时间。用include指令时,修改的生效需刷新页面或去掉已经编译成的Servlet;而用include动作时,被包含页面的修改会随时生效。(5)变量名冲突。用include指

5、令时注意新生成的JSP页面要符合JSP语法要求,应该避免变量名的冲突。而用include动作不存在变量名冲突问题。 动作将当前页面的执行过程终止忽略它的输出并且把请求转向一个新的页。 语法格式一:jsp:forward page=relativeURL | / 使用标记时,JSP页面必须使用缓冲机制,不能将page指令中的buffer属性设为none。否则它将清空缓存里的内容,浏览器里将得不到任何输出。 一旦JSP页面中加入,则它之后的程序将无法执行 ,标记将停止当前页面的处理而转向目标页面。动作将导致在客户端浏览器中运行一个指定的applet或者JavaBean。动作用来装载一个在JSP页面

6、中使用的JavaBean。 五、隐含对象功能:(JSP页面的隐含对象就是在JSP页面中不用声明就可以使用的对象。)不必使用表达式,直接存取out对象来打印一些东西到客户端;不必直接传送参数,可以借助请求对象来取得客户端输入的参数值:; 完成页面的重定向;在错误页面中显示出错信息;getParameter():取得参数值 getParameterNames():取得参数名称 getParameterValues(String name):取得所有name的参数值 getHeader(): 取得头值request 对象的方法有很多 ,从功能角度可以将这些方法分为4类: 六、表单表单的一般格式为:

7、表单中的标记(数据提交的手段)表格由和标记定义.七、response对象当客户访问一个服务器的页面时,会提交一个HTTP请求,服务器接到请求时会返回HTTP响应。响应是实现 javax.servlet.HttpServletResponse接口的类的一个实例。response对象代表的是对客户端的响应,可以通过response对象来组织发送到客户端的数据。response对象的主要方法 :setContentType ():设定对客户端响应的MIME类型 sendRedirect()页面重定向 setHeader(String name,Stringvalue):指定String类型的值到名字

8、为name的头response对象可以使用addHeader()和setHeader()方法动态添加和修改相应头的值,并将这些头发送给客户端。Out 对象out对象代表了向客户端发送数据的对象,通过out对象发送的内容将是浏览器需要显示的内容,是文本一级的。可以通过out对象直接向客户端写一个由程序动态生成HTML文件。它是javax.servlet.jsp.JspWriter类的一个实例。 JSP允许通过page指令的buffer属性调整out对象缓存的大小,甚至允许关闭缓存。 session对象HTTP是无状态(stateless)协议。客户端向服务器发送一次请求(request),服务器

9、给与响应(response)后连接就关闭了。(Cookie :利用Cookie对象来存储有关购物会话的信息,后继的各个连接可以查看当前Cookie,提取有关该会话的完整信息。 重写URL :把一些标识会话的数据附加到每个URL的后面,服务器能够把该会话标识和它所保存的会话数据关联起来。 隐藏表单域 :通过表单的隐藏域维持会话HttpSession API :Servlet提供的一种与众不同的方案 。)HttpSession API :Servlet提供的一种与众不同的方案 。HttpSession API是一个基于Cookie或者URL重写机制的高级会话状态跟踪接口。如果浏览器支持Cookie

10、,则使用Cookie;如果浏览器不支持Cookie或者Cookie功能被关闭,则自动使用URL重写方法。Servlet开发者无需关心细节问题,也无需直接处理Cookie或附加到URL后面的信息 。session对象是javax.servlet.http.HttpSession类的一个实例 ,session对象使同一用户在访问Web站点时多个页面间共享信息。一个客户访问服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面或不断向一个页面提交信息等。服务器完全可以通过session对象知道这是同一个客户。application对象负责提供应用程序在服务器中运行时的一些全局信息。服务

11、器启动时就创建一个application对象,客户在该服务器的各个页面之间链接时,application对象都是同一个,直到服务器关闭。pageContext对象主要用来管理页面的属性,描述JSP文档的运行环境。它是页面中对象功能的最大集成者,提供对所有其他隐含对象及其属性的访问。 八、与Servlet 有关的隐含对象有两个: page和config。page对象表示Servlet本身;它是this的同义词,表示JSP页面本身,是Servlet类的一个实例,就是转换后的Servlet类,可以调用Servlet中的任何方法config对象则是存放Servlet的初始参数值;config对象是 j

12、avax.servlet.servletConfig 接口的实例,存储Servlet配置对象。八、JDBC是Java数据库连接(Java DataBase Connectivity)技术JDBC是一种用于执行SQL语句的Java API。它由一组用Java编程语言编写的类和接口组成。这个API由java.sql.*和javax.sql.*两个包中的一些类和接口组成。要使用JDBC技术主要包括以下步骤:1. 注册和加载驱动器 ; 2、与数据库建立连接;3、发送SQL语句;4、处理结果; 5、关闭连接;JDBC驱动程序的类型:JDBC-ODBC桥加ODBC驱动 、本地API驱动 JDBC 网络纯J

13、ava驱动 、本地协议纯 Java 驱动 加载JDBC驱动是通过调用方法java.lang.Class.forName(),下面列出常用的几种数据库驱动程序加载语句的形式 : Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);/使用JDBC-ODBC桥驱动程序,事先必须在Windows中注册ODBC数据源 Class.forName(“oracle.jdbc.driver.OracleDriver”);/使用Oracle的JDBC驱动程序 Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriv

14、er”);/使用SQL Server的JDBC驱动程序 Class.forName(“com.ibm.db2.jdbc.app.DB2Driver”);/使用DB2的JDBC驱动程序 Class.forName(org.gjt.mm.mysql.Driver);/使用MySql的JDBC驱动程序 与数据库建立连接的方法是调用DriverManager.getConnection(String url, String user, String password )方法。下述代码显示如何打开一个与位于URL为jdbc:odbc:wombat 的数据库的连接。所用的用户标识符为oboy,口令为12J

15、ava:String url = jdbc:odbc:wombat;Connection con = DriverManager.getConnection(url, oboy, 12Java);Statement对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement对象:Statement:用于执行不带参数的简单SQL语句;PreparedStatement(从 Statement 继承):用于执行带或不带IN参数的预编译SQL语句;CallableStatement(从PreparedStatement 继承):用于执行数据库存储过程的调用。Statement 对象用Co

16、nnection的方法createStatement()创建。createStatement()的语法形式为: public Statement createStatement() throws SQLExceptionStatement接口提供了三种执行SQL语句的方法:executeQuery()、executeUpdate()和execute()。executeQuery()返回语句执行后的单个结果集的,所以通常用于SELECT语句 executeUpdate()返回值是一个整数,指示受影响的行数(即更新计数)。execute()返回一个boolean值,execute()方法执行后可以

17、得到多个结果集、多个更新计数或二者的组合。PreparedStatement对象用Connection的prepareStatement()方法创建。如果需要多次执行一个SQL语句,可以使用PreparedStatement对象。生成PreparedStatement对象的字符串中用“?”代表一个可以产生变化的IN型参数 CallableStatement对象为数据库提供了一种以标准形式调用储存过程的方法。CallableStatement由Connection对象的方法prepareCall()创建其中的参数sql形式为:? = call , . call前面的”?”表示过程返回结果参数。方

18、括号指示其中的内容是可选的。它们不是语法的必要部分。九、ResultSet对象ResultSet对象是executeQuery()方法的返回值,它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。ResultSet里的数据一行一行排列,每行有多个字段,并且有一个记录指针,指针所指的数据行叫做当前数据行,我们只能来操作当前的数据行。我们如果想要取得某一条记录,就要使用ResultSet的next()方法 ,如果我们想要得到ResultSet里的所有记录,就应该使用while循环。 ResultSet

19、对象自动维护指向当前数据行的游标。每调用一次next()方法,游标向下移动一行。 在SQL中,结果集的游标是有名字的。可通过调用ResultSet对象的getCursorName()获得游标名。 getXXX()方法,JDBC驱动程序试图将基本数据转换成指定Java类型,然后返回适合的Java值getString()方法,而数据库中数据类型为 VARCHAR,则JDBC驱动程序将把VARCHAR转换成Java String。GetString()的返回值将为Java String 对象。JDBC API具有三个获取流的方法,分别具有不同的返回值:getBinaryStream():返回只提供数

20、据库字节而不进行任何转换的流。getAsciiStream():返回提供单字节ASCII字符的流。getUnicodeStream():返回提供双字节Unicode字符的流。 关闭 Statement对象和Connection对象关闭Statement对象和Connection对象的语法形式为: public void close() throws SQLException用户不必关闭ResultSet。当它的 Statement 关闭、重新执行或用于从多结果序列中获取下一个结果时,该ResultSet将被自动关闭。十、JSP与JavaBean 从功能上,JavaBean组件的可分为两大类:可

21、视化Bean和非可视化Bean。 JavaBean的书写规范主要包括: (1)JavaBean是一个public的类。 (2)类要实现Serializable接口(3)要有一个默认构造函数,以便任何一个容器都可以创建JavaBean的实例。(4) 存放属性的变量为protected或private特性。(5)设置和获取属性时,使用setXXX()和getXXX()方法。setXXX()和getXXX() 遵循的规范(1)必须为public特性的方法。(2)一般同一个属性的get方法和set方法成对使用,也可以单独使用。(3)get方法的名字必须是getXXX(),set方法的名字必须为setX

22、XX(),其中XXX是第一个字母转换为大写的属性名。 (4)get和set方法书写形式必须符合下面规定:public get()public void set ( 参数名) public boolean is()get方法的返回类型必须与属性的数据类型一致,且不能带参数。set方法返回类型必须为void,且只能带一个和属性类型相同的参数。一般的,Bean有四种类型的属性:简单属性、索引属性、绑定属性和受限属性 JSP规范对Bean提供的支持包含下述三种标准行为:jsp:useBean:声明、创建JavaBean实例和初始化Bean:设置bean属性值 :检索bean属件值动作标记的语法形式:j

23、sp:useBean id=beanInstanceName scope=page | request | session | applicationclass=packageName.classNametype=packageName.classNamebeanName=packageName.className | 标记体语法说明(1)动作标记可以为空标记形式。(2)id属性:在id属性中指定名字作为Bean实例的标识符,后面的程序中使用此变量名来分辨不同的Bean。 (3)class属性:指出所使用的JavaBean的文件路径和文件名。 (4)type属性:指定Bean要强制类型转换的类

24、型。(5)beanName属性:指定串行化Bean的名字。 (6)scope属性:指定Bean存在的范围。 动作标记的执行过程 有两种用法:第一种用法,在元素的外面使用,此时无论是已有还是新建一个Bean实例,都会执行。 第二种用法,把放入元素的内部使用,此时只有在新建Bean实例时才会执行。 JSP编程环境提供声明和访问Bean的标准动作标记:jsp:useBean、jsp:getProperty JavaBean可以独立进行编码和测试,结合cookie、自定义标记和其他高级JSP技术,JavaBean是开发实用Web应用一种可靠的丰富的基础方案。 十一、与输入有关的隐含对象、Servlet

25、 与输入有关的隐含对象有两个:param和paramValues。一般在取得用户的请求参数时,可以在JSP脚本中利用下列方法:request.getParameter()或request.getParameterValues()。而在EL中就可以分别使用等价的$param.name或$paramValues.name来取得数据。ServletServlet是使用Java Servlet API编写的、适合于B/S模式的、运行在Web服务器端的Java类。Servlet运行于服务器上,它接受请求并用请求的数据响应客户端,它是JSP的基础。Servlet广泛使用HTTP协议,因此称为HTTP Se

26、rvlet。HTTP Servlet发送HTTP请求并接收HTTP响应。Servlet API包含在两个包中,即 javax.servlet 和 javax.servlet.http 中。Servlet的生命周期包含三种方法,分别是init()、service()和destroy()。Servlet既可以扩展 GenericServlet 类,也可以扩展HttpServlet 类。任何一个Servlet程序必须实现javax.servlet.Servlet接口 ,这个接口中有5个方法必须实现 。void destroy():被Servlet容器调用销毁一个Servlet类实例ServletCo

27、nfig getServletConfig()获得ServletConfig对象,里面包含该Servlet的初始化信息String getServletInfo():获得Servlet信息, 如作者、版本号及版权等void init(ServeletConfig config): 被Servlet容器调用初始化一个Servlet类实例void service(ServeletRequest req, ServeletResponse res): 被Servlet容器调用使得Servlet能接收用户请求并做出响应Java Servlet API已经写好了基本实现这个接口的两个抽象类,分别是Gen

28、ericServlet和HttpServlet。要运行Servlet程序需要做三项工作:首先,用Tomcat运行Servlet之前,需要将Servlet源程序编译生成的.class文件放在Tomcat安装目录下的webapps目录下某一个Web应用目录下的WEB-INFclasses目录下。其次,需要在WEB-INF文件夹下建立web.xml文件 (此文件为配置文件,也可以复制Tomcat例子中的web.xml再进行修改) 。最后,打开浏览器,在地址栏里输入:http:/localhost:8080/ch8/servlet/Helloworld,就会出现运行结果。在Servlet生命周期中,i

29、nit()方法只做一次。 在Servlet生命周期中,destroy()方法也只做一次。ServletConfig接口定义Servlet 配置对象,在初始化Servlet时将初始化信息传递给Servlet 引擎ServletContext对象表示一组Servlet共享的资源 JSP访问Servlet通过表单,JSP和Servlet共享变量一、课后习题(1)在aa.jsp中有行代码:在bb.jsp中有行代码 :为了使得在bb.jsp中的如上代码可以显示”jb-aptech”,可以使用()发送。A)在aa.jsp中使用把请求提交到bb.jspB)在aa.jsp中使用把页面重定向到bb.jspC)在

30、aa.jsp中使用把页面重定向到bb.jspD)在aa.jsp中使用包含页面bb.jspE)在aa.jsp中使用把页面重定向到bb.jsp(2)如果在JSP脚本中有如下代码: int I=10; /1 String str=”jb-aptech”; /2 Vector v=new Vector(); /3 v.add(“jb”); /4 v.add(“aptech”); /5 session.setAttribute(“I”,I); /6 session.setAttribute(“str”.str); /7 session.setAttribute(“v”,v); /8以下正确的选项是()

31、A)第6、7、8行代码是错误的B)修正第1到第8行中错误的代码后,使用String str=(String)session.getAttribute(“str”);可以取出属性str的值C)修正第1到第8行中错误的代码以后,使用int x=(int)session.getAttribute(“I”);此时I的值为10D)修正第1到第8行中错误的代码以后,可以使用Object v=session.getAttribute(“v”);取得属性v的值(3)下列选项中,( A)可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。A)request.getParameter(name);

32、 B) request.getParameter(“name”);C) request.getParameterValues(name); D) request.getParameterValues(“name”);(4)使用response对象进行重定向时使用的方法为( )。A)getAttribute() B) setContentType() C) sendRedirect() D)setAttribute()(5)如果把用户名变量UserName放在session对象中,下面语句正确的是(B)。A)session.setName(UserName) B) session.setName

33、(“name”,UserName)C) session.setAttribute(UserName) D) session.setAttribute(“name”,UserName)(6) page对象属于( C )类的对象。A)输入输出对象(request、response、out) B) 通信对象 C) Servlet对象(page、config) D) 错误对象(exception)第八章习题(1.)在J2EE中,有如下代码在Servlet1.java中:import javax.servlet.*; import javax.servlet.http.*; import java.io

34、.IOException;import java.io.PrintWriter;public class Servlet1 extends HttpServlet public void init() throws ServletException public void service(HttpServletRequesst req,HttpServletResponse res) throws ServletException, IOException PrintWrite out = response.getWriter();Out.println(“hello!”);假如编译Servl

35、et要具备的环境都已经建立好,现在用完全正确的命令编译该文件,对于以下陈述正确的是( )(一项)1.编译该文件时会提示缺少doGet或者doPost方法,编译不能够成功通过2.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,会看到输出文字:hello!3.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,却看不到任何输出文字4.编译后,把Servlet1.class放在正确位置,在浏览器中查看该Servlet1,会看到产生运行时错误的出错信息(2.) 在J2EE中,SERVLET从实例化到消亡是一个生命周期。下列描述正确

36、的是( )(两项)A、在典型的SERVLET生命周期模型中,每次WEB请求就会创建一个SERVLET实例,请求一结束,SERVLET就消亡了B、init()方法是包容器调用的SERVLET实现的第一个方法C、在包容器把请求传送给SERVLET之后,和在调用SERVLET实例的doGet()或者doPost()方法之前,包容器不会调用SERVLET容器的其它方法D、在SERVLET实例消亡之前,包容器调用SERVLET实例的destroy()方法(3.) 在J2EE中,对于HttpServlet类的描述,错误的是( )(一项)1. 我们自己编写的Servlet继承了HttpServlet类,一定

37、需覆盖doPost或doGet方法,不必覆盖service方法。因为一个service方法是空的2. HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法service()3. HttpServlet类中处理客户端请求和响应时所使用的两个接口是HttpServletRequest和HttpServletResponse4. 我们自己编写的Servlet继承了HttpServlet类,一定只需覆盖doPost或doGet方法,不必覆盖service方法。因为一个service方法会调用doPost或doGet方法(4.)在J2EE中,对于以

38、下ServletConfig的描述,错误的是( )(一项)1. 一旦Servlet被实例化后,包容器把一个ServletConfig类型的对象传递给init()方法2. 可以使用Servlet的getServletConfig()方法返回ServletConfig对象3. ServletConfig对象的方法getInitParameter(name)返回初始化参数name的值,初始化参数一般定义在web.xml中4. ServletConfig对象的方法getServletName()方法返回在web.xml中元素的值(5.) 在Servlet1中有如下代码:PrintWriter out

39、= response.getWriter(); out.println(“请同学们仔细看题目再回答!”);为了可以在浏览器中显示汉字,可以( )(两项)1. 在这两行代码前加上代码:response.setContentType(“text/html,charset=GBK”);2. 已经可以显示汉字,不用添加任何代码3. 在这两行代码前加上代码:response.setContentType(“text/html”);4. 在这两行代码前加上代码:response.setContentType(“text/html,charset=GB2312”);待添加的隐藏文字内容2(6.)下列( )是

40、抽象类 A、ServletConfig B、HttpServlet C、Cookie D、HttpServletRequest7.getBufferSize()属于( )方法 A、ServletRequest B、HttpServletResponse C、ServletResponse D、HttpServletRequest8.( )用于调用过滤器链中的下一个过滤器 A、Filter B、FilterConfig C、FilterChain D、RequestDispatcher9.每次传递请求或响应时调用Filter的( )方法 A、init() B、doFilter() C、destr

41、oy() D、getInitParameter()10.在初始化过程中,Servlet容器使用( )将信息传递给过滤器 A、Filter B、FilterConfig C、FilterChain D、RequestDispatcher11. Consider the following HTML page code:POSTWhich method of HelloServlet will be invoked when the hyperlink displayed by the above page is clicked? (Select one)A、doGet B、doPost C、do

42、Form D 、doHref E、serviceGet12. You need to send a GIF file to the browser. Which of the following lines should becalled after (or before) a call to response.getOutputStream()? (Select one)A、response.setContentType(image/gif); Before B、response.setContentType(image/gif); AfterC、response.setDataType(i

43、mage/gif); BeforeD、response.setDataType(image/gif); AfterE、response.setStreamType(image/gif); BeforeF、response.setStreamType(image/gif); After二、1、JSP:(动态网页技术标准)在传统的网页HTML 文件( *.htm,*.html )中加入Java程序片段( Scriptlet )和JSP标签,构成了JSP 网页(*.jsp) JSP位于Web服务器中,是服务器端组件。一个JSP页面由以下4种元素组成:HTML标记、JSP标记、JSP脚本和注释JSP标记包括指令标记和动作标记。(标记中的属性值是用引号括起来的)HTML标记

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号