
jsp复习题.docx
22页1、JSP页面的基本结构1) 普通的HTML标记符 符号:< >(2) JSP标记指令标记:page、include①page<%@ page 属性1="属性1的值" %>②include <%@ include file="文件的URL" %>动作标记:include、forward(跳转标记)、plugin、useBean、param子标记(用于传递参数)①
1) 运行原理 当服务器上的jsp页面被第一次请求时,该jsp会被服务器先转译成一个java文件,并编译这个文件生成字节码文件,然后执行字节码文件响应请求2) 字节码文件的主要工作① 把jsp页面中的html标记符号交给客户的浏览器负责显示② 负责处理jsp标记,并将有关的处理结果发送到客户的浏览器③ 执行“<%%>”之间的java程序片,并把执行结果交给客户的浏览器显示④ 对多个客户同时请求jsp时,将CPU在多个线程之间快速切换,以保证每个线程都有机会执行字节码文件3、JSP有哪些内置对象?作用分别是什么?(1) Request:封装用户提交的信息,使用getParameter方法可以获取用户提交的信息 request常用方法:1) getProtocol()获取用户向服务器提交信息所使用的通信协议2) getServletPath()获取用户请求的JSP页面文件的目录3) getContextPath()获取用户请求的当前的web服务目录4) getContentLength()获取用户提交的整个信息的长度5) getMethod()获取用户提交信息的方式,比如post或get6) getHeader(String s) 获取HTTP头文件中由参数s指定的头文件名字的值。
7) getHeaderNames()获取头名字的一个枚举8) getHeader(String s) 获取头文件中指定头名字的全部值得一个枚举9) getRemoteAddr()获取用户的IP地址10) getRemoteHost()获取用户机的名称11) getServerName()获取服务器的名称12) getServerPort()获取服务器的端口号13) getParameterNames()获取用户提交的信息体部分中name参数值的一个枚举2) Response:对用户的请求做出动态响应,向用户端发送数据(3) Session:由JSP引擎创建,可通过该对象保留链接的有关信息,判别是否为同一用户Session的生存周期①是否关闭浏览器②调用invalidate()方法使得session无效③session达到了设置的最长发呆时间Tomcat为30分钟Session对象存储数据① Public void setAttribute(String key,Object obj)② Public Object getAttribute(String key)③ Public Enumeration getAttributeNames()④ Public void removeAttribute(String name)(4) Application:由服务器创建,该对象对访问该服务器的所有用户共享,不同的web服务目录下,application不同(5) Out:用来向用户端输出数据4、什么是Javabean?Javabean有哪些特征?在Javaweb开发中有什么作用?(1) JavaBean是一个可重复使用的软件组见,一种Java类,通过封装属性和方法成为某种功能或处理某个业务的对象(2) 特征:① 可实现代码的重复利用② 易编写,易维护,易使用③ 可以在任何安装了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) 对信息重新编码String str=request.getParameter(“message”);Byte b[]=str.getBytes(“ISO-8859-1”); Str = new String(b);10、include指令标记和include动作标记的不同 (1)include指令标记: ①语法格式:<%@ include file=”文件的URL” %> ②作用:在JSP页面出现该指令的位置处,静态插入一个文件可重复使用) ③include指令标记是在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前的JSP页面,其优点是页面的执行速度快; (2) include动作标记: ①语法格式:
11、MVC模式的工作原理,JSP技术中MVC模式的具体实现 ①模型-视图-控制器模型:用于储存数据的对象视图:向控制器提交所需的数据、显示模型中的数据控制器:负责具体的业务逻辑操作 ②JSP技术中mvc的实现:模型:一个或多个javabean对象,用于存储数据视图:一个或多个jsp页面,像控制器提交必要的数据和显示数据控制器:一个或多个servlet对象,根据视图提交的要求进行数据处理操作,并将有关结果储存到JavaBean中,然后servlet使用转发或重定向的方式请求视图中的某个jsp页面显示数据12、什么是servlet?servlet的生命周期1) 在服务器端创建能响应用户请求的对象2) ①初始化ServletServlet第一次被请求加载时,服务器初始化这个servlet②新诞生的servlet再调用service方法响应用户的请求③服务器关闭时,调用destroy方法销毁servlet13、HttpServletResponse类的sendRedirect方法和RequestDispatcher类的forward方法有何不同?(1) sendRedirect 浏览器地址改变,重定向,无法使用request获取用户提交的数据(2) forward 浏览器地址不改变,转发,可以使用request获取用户提交的数据14、假设创建servlet的类是tom.jiafei.Dalian,创建的servlet对象的名字是myservlet,应当怎样配置web.xml文件?
用户的注册信息被存入数据库的member表中具体要求如下:a) 写出注册页面表单代码,要求详细代码b) 编写Servlet类处理控制流程c) 并写出Servlet部署文件web.xmld) 编写Javabean文件描述用户的注册信息,负责连接数据库,判断用户名是否存在以及保存注册数据 a)register.jsp form表单
b)Registerservlet.jav。