荟聚奇文、博采众长、见贤思齐
当前位置:公文素材库 > 公文素材 > 范文素材 > JAVA Web复习重点【网络本部】

JAVA Web复习重点【网络本部】

网站:公文素材库 | 时间:2019-05-28 14:32:03 | 移动端:JAVA Web复习重点【网络本部】

JAVA Web复习重点【网络本部】

一,名词解释(20分)

B2B企业到企业B2C企业到客户

JavaBean:JavaBean是SUN公司推出的一个面向对象的编程接口规范,它可以让用户设计可重用的程序快,称为JavaBean组件。编程中可以通过JavaBean的组合可以快速地生成新的应用程序。

Web:Web是WorldWideWeb的简称,也简称WWW。Web是分布在全世界的、基于HTTP通信协议的、存储在Web服务器中的所有相互链接的超文本集。

HTTP:即超文本传输协议,是专门为Web设计的一种网络通信协议,HTTP位于TCP/IP的应用层。HTTP是Web的基本通信协议,Web服务器和浏览器采用HTTP协议来传输Web文档。

HTML:即超文本标记语言,HTML是含有一套语法规则的文本标记语言。框架:能自动化完成常用功能并提供快速构建应用的平台。DNS:是域名解析服务,提供域名到IP地址之间的转换。

Internet:Internet是一个开放的、由位于世界不同地方的众多网络和计算机互联而成、依靠TCP/IP协议实现通信的互联网络。

JDBC:JDBC是SUN提出的一种访问数据库的技术标准,它是一种能通过Java语言访问数据库的应用程序接口(JDBCAPI),由一组用Java语言编写的类和接口组成。

XML:是一种与平台无关的、在Web上传递信息的语言,同时又是一种组织数据的标识方法,是可供其他高级语言读写的文本文件。二、简答题(50分)

1,HTTP(超文本传输协议)的处理过程。1),客户浏览器与Web服务器建立连接。2),客户端浏览器向Web服务器提出请求,在请求中指明所要求的特定文件。3)Web服务器响应客户端浏览器的请求。4)客户端浏览器与Web服务器断开连接。2,JavaScript的概念和基本特点。

概念:JavaScript是一种基于对象和事件驱动的、嵌在HTML文档中的脚本语言,主要用于在Web上开发交互式的Web页面。

基本特点:JavaScript是一种脚本语言;基于对象;安全性;跨平台性。3,网站设计的一般步骤1)定义网站的目标2)概要设计

3)网站的内容和功能设计4)网站的结构设计5)网站的可视化设计4,Java的三个版本。Java2标准版(J2SE)Java2企业版(J2EE)

Java2嵌入式系统版(J2ME)5,Java平台由哪些部分构成?

Java工作平台包含两个组件。Java虚拟机(JVM)和Java应用程序接口(JavaAPI)。6,配置系统的环境变量。

1)在Windows“系统”属性里选择“高级”标签,在下面找到“环境变量”按钮;2)在“系统变量”里新建一个名字叫“JAVA_HOME”的变量,其值为JDK的安装路径;3)找到PATH变量,在其前面加上%JAVA_HOME%\\bin;(分号不能省略)。7,Java类、对象、包的概念。

类是具有相同属性和行为的一组对象的集合,对象是一个类的实例。对象是包含数据以及与这些数据有关的操作的集合。包是“类“和”接口“的集合。8,接口的概念和作用、

接口是一系列常量和还没有实现的方法的结合。

接口的作用主要是将若干个重要的抽象方法和常量封装在一起,实现面向对象编程的多态机制。

9,进程与线程的区别

线程和进程都是实现并发操作的基本单位,线程和进程的差别主要表现在:

进程:每个进程都有独立的代码和数据空间,即进程占有独立的内存资源,进程切换的

开销大。

线程:也称为轻量进程,一个进程的多个线程共享代码和数据“堆”空间,每个线程有

独立的运行栈和程序计数器,线程切换的开销小。线程具有共享的“堆”,独立的“栈”,线程可以利用“堆”来完成线程间的通信。

10,Java的多线程实现的两种方式。

第一种是继承Thread类的办法,构造Thread类的一个子类,并在run()方法中包含

运行的代码,该方法多用于Java应用程序中;第二种是通过实现接口Runnabled来完成。11,TCP/IP协议簇

Application(HTTP,ftp,telnet)Transport(TCP,UDP)Network(IP,)

Link(devicedriver,)12,Socket的通讯过程。

服务器程序的编写步骤如下:

1)服务器监听相应端口的输入;

2)当接收到客户机一个请求时,创建一个新线程从套接字读取数据;3)服务器处理该请求;

4)服务器返回处理请求结果到客户机;5)服务器重新监听响应端口的输入。客户端程序的编写步骤如下:1)打开一个socket

2)对socket打开一个输入流和输出流

3)按服务程序的要求从stream中读数据或写数据4)关闭该streams5)关闭该socket13,Servlet技术

Servlet是用Java语言实现的类似于CGI的编程技术。Servlet也是J2EE的三大基础技术(JSP、JavaBean、Servlet)之一,是三大核心框架(Struts、Spring、Hibernate)其中的Struts的基础。

14,JSP运行机制的原理(JSP的执行过程)1)客户端向服务器发出请求

2)JSP服务器将JSP翻译成Servlet源代码(如:Java代码)

3)将产生的Java代码进行编译,使之成为.class文件,将.class文件加载到内存执行4)把执行结果作为响应发送至客户端由浏览器解释显示。15,JSP的三个指令元素及作用

JSP的三个指令元素是:page指令,include指令,taglib指令。

page指令作用于整个JSP页面,定义了许多与页面相关的属性,这些属性将被用于和

JSP容器通信。

Include指令用来将一个外部文件嵌入到当前JSP文件中。Taglib指令用来指定页面能够调用的用户自定义标签。

16,SUN公司定义了4种数据库驱动程序类型,常用的两种解释如下:

1)JDBC-ODBC桥驱动程序。JDBC-ODBC桥驱动程序已经包含在JDK种,它提供了

JDBC通过ODBC来和数据库交互。

2)纯JDBC+DATABASE连接方式。这种驱动程序将JDBCAPI命令转换成数据库管理

系统指定的本地调用,然后由本地调用直接操作数据库。

17,连接数据库的基本过程。

1)建立数据源2)导入用到的包3)加载驱动程序

4)创建与数据库的连接5)创建语句对象6)编写SQL语句7)执行SQL语句8)处理得到的结果集9)关闭相关对象10)处理异常

18,什么是JavaBean?JSP中怎样调用JavaBean?

JavaBean是SUN公司推出的一个面向对象的编程接口规范,它可以让用户设计可重用的程序快,称JavaBean组件。编程中可以通过JavaBean的组合可以快速地生成新的应用程序。

JSP调用JavaBean

在JSP程序中使用JavaBeans组件必须应用、和这三个标准标签。

标签的作用是声明一个具有一定生存期以及一个唯一的id的JavaBean对象。JSP通过id来识别JavaBean,通过id.method类似的语句来操作JavaBean。

标签用于对JavaBean的属性赋值。标签用于获取JavaBean的属性值。19,两种模型的优缺点。

Model1(JSP+JavaBean开发模型)的优点是:降低了页面与模型间的依赖性,实现了显示与内容分离,使页面制作和业务逻辑并行执行。

Model1(JSP+JavaBean开发模型)的缺点是:未能实现视图和控制器之间的独立和分离,JSP既要作为视图负责提供表示层数据,又要充当控制器负责业务流程控制,因此仍然有大量的代码段嵌入JSP页面中。

Model2体系结构优点是:它清晰地分离了表达和内容,明确了角色定义以及开发者与网页设计者的分工。

Model2体系结构缺点是:由于它的内部涉及的组件较多,所以需要精心地计划,理清楚它们之间的关系,这增加应用的复杂性,所以JSPModel2不适合小型应用程序。20,Model2的三个层次及其作用。

在基于Model2构建JavaWeb应用中,通常将Web应用的架构根据MVC模式划分为3个层次:视图层,控制层,业务逻辑层。

视图层主要充当用户的操作接口,负责数据的输入及结果的输出。

控制层的主要工作是控制整个应用的流程。控制层将视图层提交的数据,交付给业务逻辑层处理,并将结果返回至视图层。

业务逻辑层是应用的核心部分,主要功能包括:数据处理、数据维护及业务逻辑的实现。

21,在Model2中,系统的行为时序。

1)Servlet充当控制器角色,负责接受客户端请求并处理请求;

2)根据请求类型,Servlet可以直接存取数据库中的数据,也可创建JavaBean并将

请求的结果作为初始化参数传入JavaBean中;3)Servlet将请求传送给适当的JSP,用于显示结果

4)JSP从JavaBean中读取数据,由JavaBean与数据库进行交互5)JSP返回客户端。

三,编程(5)

编写一个简单的Java应用程序。(HelloWorldApp.java)publicclassHelloWorldApp{

publicstaticvoidmain(String[]args){

System.out.println(“HelloWorld!”);}}

四,论述题(25)(送分题)

对专业/Web/Java发展前景的认识(也可能是其他)

扩展阅读:java web期末复习要点

JavaScript是基于对象的语言。

JavaScript的基本语法:包含了一些变量及函数的声明操作,所有的JavaScript代码都是在HTML代码中编写的,使用标记完成。

JavaScript中的所有变量都使用var关键字声明,变量的类型由赋给的具体内容来决定。

HTML语句链接超链接表格和显示表格元素和表格的行显示和表格的列显示表单=””ACTION=”URL”显示表单元素METHOD=”GET|POST”>和普通输入文本密码输入框复选框单选按钮将图片设置为提交按钮JavaScript中的各个操作都有相应的事件支持,主要围绕函数展开,产生事件后可以调用相应函数进行处理,所有事件以onXxx命名。

JavaScript中程序的三种结构:

顺序结构:程序代码从头到尾执行。

分支结构:中间加入若干个判断条件,根据判断条件来决定代码的执行。

循环结构:将一段代码体重复执行。

在JSP中的3中Scriptlet代码:

第一种Scriptlet:可以定义局部变量,编写语句第二种Scriptlet:可以定义全局变量、方法、类。第三种Scriptlet:输出一个变量或一个具体的常量

跳转指令

使用指令,将一个用户的请求(request)从一个页面传递到另一个页面,即完成跳转的操作。

不传递参数:传递参数:

JSP中的包含语句:一种是静态包含,属于先包含后处理;另一种是动态包含,属于先处理后包含。

使用可以执行跳转操作,跳转后的地址栏不改变,所以是服务器端跳转,此语句属于标签指令,标签指令在最后一定要有完结。

JSP内置对象的4中属性范围

Page:只在一个页面中保存属性,跳转之后无效

Repuest:只在一次请求中保存属性,服务器跳转后依然有效Session:在一次会话范围中保存,无论何种跳转都可以使用,但新开浏览器无法使用。

Application:在整个服务器中保存,所有用户都可以使用。

9个内置对象:

pageContextrequestresponsesessionapplicationconfigoutpageexception

几种重要对象的功能:

pageContext对象:表示一个JSP页面的下文。request对象:接收客户端发送而来的请求信息。

Response对象:对客户端的请求进行回应,将Web服务器处理后的结果发回给客户端。

Session对象:完成用户的登录、注销等。Application对象:用来存储和获取可以被所有用户之间进行共享的信息

Config对象:取得一些初始化的配置信息。Out对象:完成页面的输出操作,使用println()或print()方法输出信息。

属性的操作方法:

设置属性:publicvoidsetAttribute(Stringname,Objectvalue)。取得属性:publicObjectgetAttribute(Stringname)。删除属性:publicremoveAttribute(Stringname)。

这些属性在操作时所有的属性名称都使用String进行接收,所有的属性内容使用Object进行接收,可以保存任意的对象,在取得属性时要根据取得的类型进行向下转型操作。

JavaBean标签::

:NO.类型语法格式1自动匹配:2指定属性:3指定参数:4指定内容::

:

JavaBean标签操作的简单类的开发要求:1.所有的类必须放在一个包中,在Web中没有包的类是不

存在的。

2.所有的类必须声明为Publicclass,这样才能被外部所访

问。

3.类中所有的属性都必须封装,即使用private声明。4.封装的属性如果需要被外部所操作,则必须编写对应的

setter、getter方法。

一个JavaBean中至少存在一个无参构造方法,此方法为JSP中的标签所使用。

Servlet程序是运行在服务器端的一段Java程序,其生命周期将受Web容器的控制。

生命周期包括加载程序、初始化、服务、销毁、卸载。Servlet生命周期控制的3个方法:Init()

Service()(doGet()、doPost())Destroy()

MAV设计模式:强制性地使应用程序的输入、处理和输出分开。

分为3个核心层:模型层、显示层、控制层。

显示层(View):主要负责接收Servlet传递的内容,并且调用JavaBean,将内容显示给用户。

控制层(Controller):主要负责所有的用户请求参数,判断请求参数是否合法。

模型层(Model):完成一个独立的业务操作组件,一般以JavaBean或者EJB的形式进行定义的。

Servlet的特点:是一个供其他Java程序调用的类,不能独立运行。它的运行完全由Servlet引擎来控制和调度。Servlet引擎是一种容器程序,负责管理和维护所有Servlet对象的生命周期。Servlet的加载执行流程,以及如何接收客户端发送的数据和如何将数据传输到客户端等具体的底层事务,都由Servlet引擎来实现。Servlet用于读取Web浏览器传递给web服务器的参数和生成web服务器返回给web浏览器的动态网页文档内容;也能获取web浏览器发送的HTTP请求消息中的各个请求头和请求行信息。

Servlet的运行过程:

1.接收到访问某个Servlet的HTTP请求之后,Servlet引擎

首先检查是否已经安装并创建了该Servlet的实例对象。如果已装载并创建,Servlet引擎则直接执行步骤4,否则,执行步骤2.

2.装载并创建Servlet的一个实例对象。

3.调用Servlet实例对象的init()方法,以便执行Servlet的

一些初始化工作。

4.创建一个用于封装HTTP请求消息的HttpServletRepuest

对象和一个代表HTTP响应消息的HttpServletRepuest对象,然后调用Servlet的servive()方法并将请求和响应对象作为参数传递进去。

5.在一个Web应用程序被停止或重新启动之前,Servlet

引擎将卸载其中运行的Servlet。代码4登录检查servletpackagecom.servlets;importjava.io.IOException;

importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.beans.User;importcom.beans.userHandler;

publicclassLoginCheckServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,

HttpServletResponse

response)

throws

ServletException,IOException{

doGet(request,response);}protectedvoiddoGet(HttpServletRequestrequest,

HttpServletResponse

response)

throws

ServletException,IOException{

//得到输入的用户名

Stringusername=request.getParameter("username");//得到输入的密码

Stringpassword=request.getParameter("password");//封装成User对象Useruser=newUser();user.setUsername(username);user.setPassword(password);

if(username!=null&&password!=null){//实例化userHandler

userHandleruserhandler=newuserHandler();//调用userhandler的checkLogin方法

booleanisSuccess=userhandler.checkLogin(user);userhandler.CloseSql();

//根据返回结果进行视图控制处理if(isSuccess){//得到session对象

HttpSessionsession=request.getSession();session.setAttribute("username",username);//向index.jsp进行跳转(服务器端跳转)RequestDispatcher

requestDispatcher

=request.getRequestDispatcher("index.jsp");

requestDispatcher.forward(request,response);}Else{//向showerror.jsp进行跳转(服务器端跳转)

RequestDispatcher

requestDispatcher

=request.getRequestDispatcher("showerror.jsp");

requestDispatcher.forward(request,response);}}

else{//向showerror.jsp进行跳转(服务器端跳转)

RequestDispatcher

requestDispatcher

=request.getRequestDispatcher("showerror.jsp");requestDispatcher.forward(request,response);}}}

代码5用户注册servletpackagecom.servlets;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.SQLException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.beans.User;importcom.beans.userHandler;

publicclassRegisterServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,

HttpServletResponse

response)

throws

ServletException,IOException{

doGet(request,response);}

protectedvoiddoGet(HttpServletRequestrequest,

HttpServletResponse

response)

throws

ServletException,IOException{

request.setCharacterEncoding("GBK");//得到输入的所有用户注册信息

Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");Stringrealname=request.getParameter("realname");Stringgender=request.getParameter("gender");Stringage_str=request.getParameter("age_str");intage=Integer.parseInt(age_str);//封装成一个User对象

Useruser=newUser(username,password,realname,gender,age);

response.setContentType("textml;charset=gb2312");PrintWriterout=response.getWriter();

if(username!=null&&password!=null){//实例化userHandler

userHandleruserhandler=newuserHandler();//调用userhandler的addUser方法booleanisSuccess=false;

try{isSuccess=userhandler.addUser(user);}catch(SQLExceptione){e.printStackTrace();}userhandler.CloseSql();

if(isSuccess){

Stringcontextpath=request.getContextPath();

out.println("alert("注册成功!");"+"window.location=""+contextpath+"/login.htm";");}

else{Stringcontextpath=request.getContextPath();

out.println("alert("注册失败!");"+"window.location=""+contextpath+"/register.htm";");}}else{

response.sendRedirect(request.getContextPath()+"/showerror.jsp");}}}

第一题.Html登陆界面制作

登录界面

登录操作

用户登录

用户ID:

密码:

代码来自书上P118

第二题html字体显示

字体显示

字体显示

粗体斜体

下划

线

中划线

90°

H2O

自己写+网上查找的代码

3、简述JSP中任意5个内置对象的名称与作用。(15分)

答案来自百度百科(背5个就行了)

(1)request对象

客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。

(2)response对象

response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。(3)session对象

session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。(4)out对象

out对象是JspWriter类的实例,是向客户端输出内容常用的对象

(5)page对象

page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例(6)application对象

application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。(7)exception对象

exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象(8)pageContext对象

pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。(9)config对象

config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

4、简述内置对象中的4种属性范围及意义。(12分)pageContext:只在一个页面中保存属性,跳转后无效。

Request:只在一次请求中保存,服务器跳转后依然有效。

Session:在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用。

Application:在整个服务器上保存,所有用户都可以使用。

5、简述Servlet程序的处理步骤。(10分)

当你用JSP或HTML提交表单的时候(点submit),浏览器会将这个请求封装成一个request,发送到服务器端(Tomcat端),服务器端接收到这个request请求之后,交由Servlet来处理,将处理后的结果,封装成response返还给浏览器。Tomcat根据WEB-INF下面的web.xml来实例化Servlet,一般来讲,Servlet只被实例化一次,实例化之后,多个线程共享。

6、使用MVC的设计模式,设计一个用户注册程序,利用JSP,Servlet和JavaBean组件进行实现。要求:

1、简述MVC的组成,并说明JSP,Servlet和JavaBean组件分别可以在MVC架构中充当什么功能?

2、给出JSP,Servlet和JavaBean组件的关键代码。

答:MVC即Model-View-Controller,

JSP负责显示界面相当于MVC中的View(视图层),

Servlet负责历程控制相当于MVC中的Controller(控制层),

JavaBean负责功能相当于MVC中的Model(数据层)。

用户注册:jsp页面zhuce.jsp:

请注

册:用户名:

密码:

性别:

年龄:

zhuce1.jsp:

StringinsertCondition="INSERTusersVALUES(""+username+"",""+password+"",""+sex+""","+age+")";Stringstr="";Connectioncon;Statementsql;try{String

uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student";

con=DriverManager.getConnection(uri,"sa","sa");sql=con.createStatement();

intm=sql.executeUpdate(insertCondition);

if(m!=0)str="注册成功";

elsestr="注册失败";

con.close();

}catch(SQLExceptione){str=e.toString();}out.print(str);

%>

用户注册servletpackagecom.servlets;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.SQLException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.beans.User;importcom.beans.userHandler;

publicclassRegisterServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,

HttpServletResponseresponse)throwsServletException,

IOException{

doGet(request,response);}protectedvoiddoGet(HttpServletRequestrequest,

HttpServletResponseresponse)throwsServletException,

IOException{

request.setCharacterEncoding("GBK");//得到输入的所有用户注册信息

Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");Stringrealname=request.getParameter("realname");Stringgender=request.getParameter("gender");Stringage_str=request.getParameter("age_str");intage=Integer.parseInt(age_str);//封装成一个User对象

Useruser=newUser(username,password,realname,gender,

age);response.setContentType("textml;charset=gb2312");PrintWriterout=response.getWriter();

if(username!=null&&password!=null){

//实例化userHandler

userHandleruserhandler=newuserHandler();//调用userhandler的addUser方法booleanisSuccess=false;

try{isSuccess=userhandler.addUser(user);}catch(SQLExceptione){e.printStackTrace();}userhandler.CloseSql();

if(isSuccess){

Stringcontextpath=request.getContextPath();

out.println("alert("注册成功!");"+"window.location=""+contextpath+"/login.htm";");}

else{Stringcontextpath=request.getContextPath();out.println("alert("注册失败!");"+"window.location=""+contextpath+"/register.htm";");}}else{

response.sendRedirect(request.getContextPath()+"/showerror.jsp");}}}

JavaBean值对象用于数据的传递packagecom.beans;publicclassUser{privateStringusername;privateStringpassword;privateStringrealname;privateStringgender;privateintage;

publicStringgetUsername(){returnusername;

}

publicvoidsetUsername(Stringusername){this.username=username;}

publicStringgetPassword(){returnpassword;

}

publicvoidsetPassword(Stringpassword){this.password=password;}

publicStringgetRealname(){returnrealname;}

publicvoidsetRealname(Stringrealname){this.realname=realname;}

publicStringgetGender(){returngender;

}

publicvoidsetGender(Stringgender){

this.gender=gender;

}

publicintgetAge(){}

publicvoidsetAge(intage){}

publicUser(){}

publicUser(Stringusername,Stringpassword,Stringrealname,}}

this.username=username;this.password=password;this.realname=realname;this.gender=gender;this.age=age;this.age=age;returnage;

Stringgender,intage){

友情提示:本文中关于《JAVA Web复习重点【网络本部】》给出的范例仅供您参考拓展思维使用,JAVA Web复习重点【网络本部】:该篇文章建议您自主创作。

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


JAVA Web复习重点【网络本部】》由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
链接地址:http://www.bsmz.net/gongwen/585502.html
相关文章