JS精选考试试题.docx
《JS精选考试试题.docx》由会员分享,可在线阅读,更多相关《JS精选考试试题.docx(10页珍藏版)》请在冰豆网上搜索。
JS精选考试试题
一.选择题:
(20个)
范围:
除《tag文件与tag标记》之外的所有章节
二。
填空题:
1当在JSP文件中要使用到Vector对象时,应在JSP文件中加入<%@pageimport=”java.util.*”%>
2_response_对象封装了对客户端的响应。
3HTML一种标记语言,使用各种标记格式化文本信息。
在HTML页面里以_
_标记页面的起始,_
_标记页面的标题,__标记页面的主体内容。
6假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:
HelloServlet
HelloServlet
/hello
那么在本地浏览器端访问HelloServlet的URL是_
7下面date1.jsp程序要求在网页中显示当前日期,请将补充程序。
<%@_pageimport=”java.util.*”%>
<%DatemyDate=newDate();
out.println(myDate.toLocaleString());%>
8JDBC的主要任务是:
建立与数据库的连接、向数据库发起查询请求、处理数据库返回结果。
9Servlet的生命周期分三个时期:
装载Servlet、创建一个Servlet实例、销毁
11File类是Object的直接子类,它既可以对文件进行读操作,又可以对文件进行写操作。
12在Tomcat中创建自己的开发目录BW文件夹,需要在BW文件夹中创建_WEB_INF文件夹,还需要_classes文件夹来存放class文件。
13调用request的getRemoteAddr()方法可以_获取客户机的IP地址
三。
简答题:
(5个)
1简述在程序开发中,JSP的运行原理。
1.Web服务器上的JSP引擎将JSP文件转换为Java文件
2.JSP引擎调用Java编译器对Java文件进行编译
3.Java虚拟机执行编译文件,并将结果返回给客户端
注:
Web服务器执行JSP的三个过程不是客户端每次请求一个JSP页面时都被执行的.当Web服务器启动后,客户端第一次请求一个JSP页面时,需要完全执行上述三个过程,此后Servlet的代码便驻留在内存当中,因此当客户端再次请求这个JSP页面时,就可以非常快的得到返回结果.
2列举出九个JSP的内置对象,并简述request、response和session的作用。
request,response,out,session,application,config,pagecontext,page,exception
request作用
内置对象request封装了用户提交的信息,该对象调用相应的方法可以获取封装的信息。
request对象是实现了ServletRequest接口的类的一个实例
response作用
response对象与request对象相对应,服务器可以用response对象对客户端的请求进行动态的响应。
session作用
HTTP是一种无状态协议,服务器在响应了客户端的请求后,服务器与客户端的连接就关闭了,服务器不会保存连接的有关信息。
Tomcat可以使用内置session对象记录有关连接的信息,它是实现了HttpSession接口类的一个实例。
3简述includepage=”uri”/>与<%@includefile=”uri”%>的区别。
(1)前者动态包含;后者静态插入且被插入页面和插入页面不能有不同的contentType属性值
(2)include指令标记与include动作标记比较:
二者都是在当前JSP页面处理所需要的文件,前者是在编译阶段处理,逻辑和语法上依赖于当前JSP页面,但执行速度快;而后者是在运行阶段处理,逻辑和语法上独立于当前页面,速度慢,但可以使用param子标记
4jsp有哪些动作指令?
作用分别是什么?
include
(1)动态包含
(2)在当前JSP页面处理所需要的文件,在运行阶段处理,逻辑和语法上独立于当前页面,速度慢,但可以使用param子标记
param
param标记不能独立使用,需要作为jsp:
include、jsp:
forward、jsp:
plugin标记的子标记来使用。
格式为:
paramname=“名字”value=“值”>
param标记与jsp:
include标记一起使用的时候,可以将参数传递到要加载的文件中去,被加载的文件可以通过request内置对象的getParameter()方法获取传递过来的参数。
forward
从该指令处停止当前页面的执行,而转向page属性指定的JSP页面
plugin
plugin标记保证客户浏览器能执行Javaapplet程序
5简述编写JavaBean要满足的条件
编写JavaBean就是编写一个java类,只是方法的命名上有一些规则:
(1)对应于类的成员变量名xxx,获取及设置xxx的值的两个方法应为getXxx()和setXxx()
(2)对于boolean类型的成员变量,允许使用is代替上面的get和set
(3)方法的访问控制符必须都是public
(4)类中声明的构造函数必须是public,无参数的
6描述JSP和Servlet的区别、共同点、各自应用的范围
JSP在本质上就是SERVLET,但是两者的创建方式不一样。
Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观。
JSP由HTML代码和JSP标签构成,可以方便地编写动态网页。
因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页。
在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层。
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。
JSP编译后是“类servlet”。
Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
而JSP是Java和HTML组合成一个扩展名为.jsp的文件。
JSP侧重于视图,Servlet主要用于控制逻辑。
7.简述重定向与转发的实现方式以及区别(实现方式可用代码举例)
重定向的功能是将用户从当前页面或servlet重定向到另一个页面或servlet;转发的功能是将用户对当前JSP页面或servlet对象的请求转发给另一个JSP页面或servlet对象。
转发后用户在地址栏中不能看到forward方法转发的页面或servlet的地址,只能看到该页面或servlet的地址。
重定向:
voidsendRedirect(Stringlocation)
实现转发需要两个步骤:
(1)得到RequestDispatcher对象
RequestDispatcherdispatcher=request.getRequestDispatcher(“a.jsp”);
其中a.jsp是要转发的JSP页面或servlet的地址
(2)转发:
dispatcher.forward(request,response);
8.简述MVC模式的基本思想。
模型-视图-控制器(model-view-controller),简称MVC.MVC是一种先进的设计模式,是一种通过三个不同部分构造一个软件或组建的理想方法:
模型(model):
用于存储数据的对象
视图(view):
显示模型中的数据,向控制器提交所需数据
控制器(controller):
负责具体的业务逻辑操作,即控制器根据视图提出的要求对数据作出处理,将有关结果存储到模型中,并负责让模型和视图进行必要的交互,当模型中的数据变化时,让视图更新显示。
9.简述数据库连接池的思想以及使用连接池的好处。
连接池的思想:
Tomcat服务器预先准备好若干个连接对象,
将这些对象保存在一个称为连接池的容器中(通常为链表),
当某个用户需要操作数据库时,只要从连接池中取出一个连接
对象,当用户使用完该连接对象后,再将该对象放回连接池。
若
连接池中没有连接对象可用,那么用户必须等待。
连接池的好处:
1.资源复用2.更快的系统响应速度3.新的资源分配手段4.统一的连接管理,避免数据库连接泄漏
四。
程序设计题:
(1个)
范围:
对mysql数据库的连接及增删改查的操作
inquire.jsp
<%@pagelanguage="java"contentType="text/html;charset=gb2312"
pageEncoding="gb2312"%>
<%@pageimport="database.select.*"%>
setPropertyname="score"property="name"param="name"/>
setPropertyname="score"property="number"param="number"/>
setPropertyname="score"property="math"param="math"/>
setPropertyname="score"property="english"param="english"/>
Inserttitlehere
--设计数据库school,数据库中建表student,
字段name,number,math,english,编写inquire.jsp,
查找数学和英语成绩都在90分以上的同学的记录,显示在页面上-->
学生成绩查询(按条件查询)
数学成绩:
英语成绩:
按条件查询:
数学成绩是getPropertyname="score"property="math"/>,
英语成绩是getPropertyname="score"property="english"/>的记录:
getPropertyname="score"property="queryResultByScore"/>
学生成绩添加
姓名:
学号:
数学成绩:
英语成绩:
getPropertyname="score"property="addResult"/>
学生成绩修改
姓名:
数学成绩:
英语成绩:
getPropertyname="score"property="updateResultByName"/>
学生成绩删除
姓名:
getPropertyname="score"property="delResultByName"/>
查询所有:
getPropertyname="score"property="queryResultByAll"/>
SelectME.java
packagedatabase.select;
importjava.sql.*;
publicclassSelectME{
intmath=90,english=90;
Stringname="";
intnumber;
StringBufferqueryResultByScore,queryResultByAll,addResult,updateResultByName,delResultByName;
publicSelectME()
{
//queryResultByScore=newStringBuffer();
//queryResultByAll=newStringBuffer();
//updateResultByName=newStringBuffer();
//delResultByScore=newStringBuffer();
}
catch(Exceptione){}
}
publicintgetMath(){
returnmath;
}
publicvoidsetMath(intmath){
this.math=math;
//queryResultByScore=newStringBuffer();
}
publicintgetEnglish(){
returnenglish;
}
publicvoidsetEnglish(intenglish){
this.english=english;
//queryResultByScore=newStringBuffer();
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetNumber(){
returnnumber;
}
publicvoidsetNumber(intnumber){
this.number=number;
}
//按条件查询
publicStringBuffergetQueryResultByScore()
{Stringcondition="SELECT*FROMstudentWheremath>="+math
+"AND"+"english>="+english;
queryResultByScore=f(condition);
returnqueryResultByScore;
}
//查询所有
publicStringBuffergetQueryResultByAll()
{Stringcondition="SELECT*FROMstudent";
queryResultByAll=f(condition);
returnqueryResultByAll;
}
//添加
publicStringBuffergetAddResult()
{
Stringcondition="insertintostudent(name,number,math,english)value("+name+","+number+","+math+","+english+")";
addResult=AddOrUpd(condition);
returnaddResult;
}
//按条件修改
publicStringBuffergetUpdateResultByName()
{Stringcondition="updatestudentsetmath="+math+",english="+english+"wherename="+name;
updateResultByName=AddOrUpd(condition);
returnupdateResultByName;
}
//按条件删除(删除条件看情况具体写)
publicStringBuffergetDelResultByName()
{Stringcondition="deletefromstudentwherename="+name;
delResultByName=AddOrUpd(condition);
returndelResultByName;
}
privateStringBufferf(Stringcondition)
{StringBufferstr=newStringBuffer();
Connectioncon;
Statementsql;
ResultSetrs;
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executeQuery(condition);
str.append("");
str.append(""+"name");
str.append(""+"number");
str.append(""+"math");
str.append(""+"english");
while(rs.next())
{str.append("
");str.append("
"+rs.getString (1)+" | ");str.append("
"+rs.getInt (2)+" | ");str.append("
"+rs.getInt(3)+" | ");str.append("
"+rs.getInt(4)+" | ");str.append("
");
}
str.append("");
con.close();
}
catch(SQLExceptione)
}
returnstr;
}
privateStringBufferAddOrUpd(Stringcondition)
{StringBufferstr=newStringBuffer();
Connectioncon;
Statementsql;
ResultSetrs;
introws=0;
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rows=sql.executeUpdate(condition);
if(rows>0){
}
con.close();
}
catch(SQLExceptione)
}
returnstr;
}
}