jsp复习题.docx

上传人:b****6 文档编号:13159313 上传时间:2023-06-11 格式:DOCX 页数:17 大小:180.60KB
下载 相关 举报
jsp复习题.docx_第1页
第1页 / 共17页
jsp复习题.docx_第2页
第2页 / 共17页
jsp复习题.docx_第3页
第3页 / 共17页
jsp复习题.docx_第4页
第4页 / 共17页
jsp复习题.docx_第5页
第5页 / 共17页
jsp复习题.docx_第6页
第6页 / 共17页
jsp复习题.docx_第7页
第7页 / 共17页
jsp复习题.docx_第8页
第8页 / 共17页
jsp复习题.docx_第9页
第9页 / 共17页
jsp复习题.docx_第10页
第10页 / 共17页
jsp复习题.docx_第11页
第11页 / 共17页
jsp复习题.docx_第12页
第12页 / 共17页
jsp复习题.docx_第13页
第13页 / 共17页
jsp复习题.docx_第14页
第14页 / 共17页
jsp复习题.docx_第15页
第15页 / 共17页
jsp复习题.docx_第16页
第16页 / 共17页
jsp复习题.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

jsp复习题.docx

《jsp复习题.docx》由会员分享,可在线阅读,更多相关《jsp复习题.docx(17页珍藏版)》请在冰点文库上搜索。

jsp复习题.docx

jsp复习题

1、JSP页面的基本结构。

(1)普通的HTML标记符符号:

<>

(2)JSP标记

指令标记:

page、include

①page<%@page属性1="属性1的值"%>

②include<%@includefile="文件的URL"%>

动作标记:

include、forward(跳转标记)、plugin、useBean、param子标记(用于传递参数)

动作名page="要转向的页面"/>

动作名page="要转向的页面">

param子标记:

paramname="名字"value="指定给param的值"/>

动作名>

(3)变量和方法的声明<%!

%>

在<%!

%>声明的变量整个JSP页面有效,与书写位置无关,是成员变量

在<%!

%>声明的方法整个JSP页面有效,但方法内的变量只在该方法内有效

(4)Java程序片<%%>

在<%%>中声明的变量为局部变量,有效范围与书写位置有关

(5)Java表达式<%=%>

2、JSP的运行原理以及字节码文件的主要工作。

(1)运行原理

当服务器上的jsp页面被第一次请求时,该jsp会被服务器先转译成一个java文件,并编译这个文件生成字节码文件,然后执行字节码文件响应请求。

(2)字节码文件的主要工作

1把jsp页面中的html标记符号交给客户的浏览器负责显示

2负责处理jsp标记,并将有关的处理结果发送到客户的浏览器

3执行“<%%>”之间的java程序片,并把执行结果交给客户的浏览器显示

4对多个客户同时请求jsp时,将CPU在多个线程之间快速切换,以保证每个线程都有机会执行字节码文件

3、JSP有哪些内置对象?

作用分别是什么?

(1)Request:

封装用户提交的信息,使用getParameter方法可以获取用户提交的信息

request常用方法:

1)getProtocol()获取用户向服务器提交信息所使用的通信协议。

2)getServletPath()获取用户请求的JSP页面文件的目录。

3)getContextPath()获取用户请求的当前的web服务目录。

4)getContentLength()获取用户提交的整个信息的长度。

5)getMethod()获取用户提交信息的方式,比如post或get。

6)getHeader(Strings)获取HTTP头文件中由参数s指定的头文件名字的值。

7)getHeaderNames()获取头名字的一个枚举。

8)getHeader(Strings)获取头文件中指定头名字的全部值得一个枚举。

9)getRemoteAddr()获取用户的IP地址。

10)getRemoteHost()获取用户机的名称。

11)getServerName()获取服务器的名称。

12)getServerPort()获取服务器的端口号。

13)getParameterNames()获取用户提交的信息体部分中name参数值的一个枚举。

 

(2)Response:

对用户的请求做出动态响应,向用户端发送数据

(3)Session:

由JSP引擎创建,可通过该对象保留链接的有关信息,判别是否为同一用户

Session的生存周期

①是否关闭浏览器

②调用invalidate()方法使得session无效

③session达到了设置的最长发呆时间Tomcat为30分钟

Session对象存储数据

1PublicvoidsetAttribute(Stringkey,Objectobj)

2PublicObjectgetAttribute(Stringkey)

3PublicEnumerationgetAttributeNames()

4PublicvoidremoveAttribute(Stringname)

(4)Application:

由服务器创建,该对象对访问该服务器的所有用户共享,不同的web服务目录下,application不同

(5)Out:

用来向用户端输出数据

4、什么是Javabean?

Javabean有哪些特征?

在Javaweb开发中有什么作用?

(1)JavaBean是一个可重复使用的软件组见,一种Java类,通过封装属性和方法成为某种功能或处理某个业务的对象

(2)特征:

1可实现代码的重复利用

2易编写,易维护,易使用

3可以在任何安装了Java运行环境的平台使用,而不需要重新编译。

(3)作用:

处理数据,储存数据,有效的分离静态部分和动态部分

5、保存bean的字节码

①创建bean、

②在web服务目录下建立子目录结构:

\WEB-INF\classes、

③根据类的包名在classes下建相应子目录,如tom.jiafei,则目录结构为tom\jiafei

将bean的字节码文件复制到\WEB-INF\classes\tom\jiafei中

6、bean的加载原理

当JSP页面使用jsp动作标记useBean加载一个bean时,jsp引擎将首先根据jsp动作标记useBean给出的bean的id名字以及scope给出的使用范围,在下一个同步块中查找jsp引擎内置pageContent对象中是否含有这样的bean。

如果这样的bean存在,jsp引擎就分配这样的bean给用户,如果在pageContent中没有查找到jsp动作标记要求的bean,就根据class制定的字节码创建一个useBean要求的bean,并将所创建的bean添加到pageContent内置对象中。

7、bean的有效范围

(1)scope取值page,只在当前页面有效,直到页面执行完毕

(2)scope取值session,只在用户的session(会话)期间

(3)scope取值request,只在当前页面有效,直到响应结束,略长于page

(4)scope取值application,直到服务器关闭。

共享,修改会影响其他用户

8、获取或修改bean的属性

使用动作标记getProperty、setProperty获取或修改

9、如果表单提交的信息中有汉字,接收该信息的页面应该做怎样的处理?

(1)Request设置编码

request.setCharacterEncoding("gb2312");

(2)对信息重新编码

Stringstr=request.getParameter(“message”);

Byteb[]=str.getBytes(“ISO-8859-1”);

Str=newString(b);

10、include指令标记和include动作标记的不同。

(1)include指令标记:

①语法格式:

<%@includefile=”文件的URL”%>

②作用:

在JSP页面出现该指令的位置处,静态插入一个文件。

(可重复使用)

③include指令标记是在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前的JSP页面,其优点是页面的执行速度快;

(2)include动作标记:

①语法格式:

includepage=”文件的URL”/>

includepage=”文件的URL

Param子标记

include>

②include动作标记是在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面,其优点是可以使用param子标记更灵活的处理所需要的文件,缺点是执行速度要慢些。

11、MVC模式的工作原理,JSP技术中MVC模式的具体实现。

①模型-视图-控制器

模型:

用于储存数据的对象

视图:

向控制器提交所需的数据、显示模型中的数据

控制器:

负责具体的业务逻辑操作

②JSP技术中mvc的实现:

模型:

一个或多个javabean对象,用于存储数据。

视图:

一个或多个jsp页面,像控制器提交必要的数据和显示数据

控制器:

一个或多个servlet对象,根据视图提交的要求进行数据处理操作,并将有关结果储存到JavaBean中,然后servlet使用转发或重定向的方式请求视图中的某个jsp页面显示数据。

12、什么是servlet?

servlet的生命周期。

(1)在服务器端创建能响应用户请求的对象。

(2)①初始化Servlet。

Servlet第一次被请求加载时,服务器初始化这个servlet

②新诞生的servlet再调用service方法响应用户的请求

③服务器关闭时,调用destroy方法销毁servlet

13、HttpServletResponse类的sendRedirect方法和RequestDispatcher类的forward方法有何不同?

(1)sendRedirect浏览器地址改变,重定向,无法使用request获取用户提交的数据

(2)forward浏览器地址不改变,转发,可以使用request获取用户提交的数据

14、假设创建servlet的类是tom.jiafei.Dalian,创建的servlet对象的名字是myservlet,应当怎样配置web.xml文件?

xmlversion=“1.0”encoding=“iso-8859-1”?

>

myservlet

tom.jiafei.Dalian

myservlet

/myservlet

15、采用MVC模式实现会员注册;当新会员注册时,该模板要求用户必须输入会员名,密码信息,否则不允许注册,注册成功返回登录页面login.jsp(不需要编写)。

用户的注册信息被存入数据库的member表中。

具体要求如下:

a)写出注册页面表单代码,要求详细代码。

b)编写Servlet类处理控制流程。

c)并写出Servlet部署文件web.xml。

d)编写Javabean文件描述用户的注册信息,负责连接数据库,判断用户名是否存在以及保存注册数据。

a)register.jspform表单

b)Registerservlet.java(注册功能的servlet)

publicclassRegisterservletextendsHttpServlet{

publicvoidinit(ServletConfigconfig)throwsServletException{

super.init(config);

}

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

request.setCharacterEncoding("utf-8");

Stringusername=request.getParameter("username");

Stringuserpass=request.getParameter("userpass");

Useruser=newUser();

booleanisExist=user.usernameIsExist(username);

if(isExist==false){

RequestDispatcherdispatcher=request.getRequestDispatcher("login.jsp");

dispatcher.forward(request,response);

}else{

response.setContentType("text/html;charset=UTF-8");

response.getWriter().write("用户名已存在......");

}

}

PublicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

doGet(request,response);

}

}

c)Web.xml

Registerservlet

.servlet.Registerservlet

Registerservlet

/registerservlet

d)Javabean命名为user.java

publicclassUsers{

privateStringusername;

privateStringuserpass;

Connectioncon=null;

PreparedStatementpre=null;

ResultSetrs=null;

//判断用户名是否存在

publicbooleanusernameIsExist(Stringusername){

booleanisExist=null;

Stringsql="select*fromuserwhereusername='"+username+"'";

try{

Class.forName(".mysql.jdbc.Driver");

con=DriverManager.getConnection("***","***","***");

pre=con.prepareStatement(sql);

rs=pre.executeQuery();

if(rs.next()){

isExist=true;

}else{

isExist=false;

}

}catch(Exceptione){

}

returnisExist;

}

publicStringgetUsername(){

returnusername;

}

publicvoidsetUsername(Stringusername){

this.username=username;

}

publicStringgetUserpass(){

returnuserpass;

}

publicvoidsetUserpass(Stringuserpass){

this.userpass=userpass;

}

}

16、采用MVC模式实现web应用。

用户可以通过JSP页面输入三角形三边的长度的一个servlet控制器,控制器负责计算三角形的面积,并将面积存放在数据模型中,然后请求JSP页面显示数据模型中的面积。

写出几个文件的关键代码(或程序流程,尽量采用代码),具体要求如下:

a)写出输入三条边的页面表单代码,要求详细代码。

b)编写servlet类文件,处理控制流程。

c)并写出servlet部署文件web.xml。

d)编写三角形的Javabean文件。

a)JSP页面命名为sanjiao.jsp

三角形:


边A:

边B:

边C:

getPropertyproperty="mess"name="data"/>:

边A:

getPropertyproperty="a"name="data"/>,

边B:

getPropertyproperty="b"name="data"/>,

边C:

getPropertyproperty="c"name="data"/>

的面积是

getPropertyproperty="area"name="data"/>

b)servlet类为HandleArea.java

packagemyservlet.control;

publicclassHandAreaextendsHttpServlet{

publicvoidinit(ServletConfigconfig)throwsServletException{

super.init(config);

}

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

doPost(request,response)

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

AreadataBean=newArea();

HttpSessionsession=request.getSession(true);

session.setAttribute("data",dataBean);

try{

doublea=Double.parseDouble(request.getParameter("a"));

doubleb=Double.parseDouble(request.getParameter("b"));

doublec=Double.parseDouble(request.getParameter("c"));

dataBean.setA(a);

dataBean.setB(b);

dataBean.setC(c);

doubles=-1;

doublep=(a+b+c)/2.0;

s=Math.sqrt(p*(p-a)*(p-b)*(p-c));

dataBean.setArea(s);

dataBean.setMess("三角形");

}catch(Exceptione){

dataBean.setArea(-1);

dataBean.setMess(""+e);

}

response.sendRedirect("sanjiao.jsp");//重定向方法

}

}

c)web.xml

handle

myservlet.control.HandArea

handle

/handleArea

d)javabean文件为Area.java

packagemybean.data;

publicclassArea{

doublea,b,c,area;

Stringmess;

publicStringgetMess(){

returnmess;

}

publicvoidsetMess(Stringmess){

this.mess=mess;

}

publicdoublegetA(){

returna;

}

publicvoidsetA(doublea){

this.a=a;

}

publicdoublegetB(){

returnb;

}

publicvoidsetB(doubleb){

this.b=b;

}

publicdoublegetC(){

returnc;

}

publicvoidsetC(doublec){

this.c=c;

}

publicdoublegetArea(){

returnarea;

}

publicvoidsetArea(doublearea){

this.area=area;

}

}

17、编写一个JSP页面,该页面提供一个表单,用户可以通过表单输入梯形的上底、下底、高的值,并提交给JSP页面,该JSP页面将计算梯形的面积之任务交给一个bean去完成。

JSP页面使用getProperty动作标记显示梯形的面积。

①bean命名为Ladder.java

packagemybean.data;

publicclassLadder{

doublea=0,b=0,c=0,area=-1;

publicdoublegetA(){

returna;

}

publicvoidsetA(doublea){

this.a=a;

}

publicdoublegetB(){

returnb;

}

publicvoidsetB(d

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

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2