jsp复习题.docx
- 文档编号:25637506
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:17
- 大小:180.60KB
jsp复习题.docx
《jsp复习题.docx》由会员分享,可在线阅读,更多相关《jsp复习题.docx(17页珍藏版)》请在冰豆网上搜索。
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”? > 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 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 三角形: 边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 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
边A:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 复习题