logo资料库

JSP实验总结.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
1. 在服务器下运行和直接打开文件区别是什么?  对于用本地路径执行 html 文件,浏览器只是编译 html 语言,并不向服务器发送请求。 以 file 协议的方式去打开;  而在服务器下运行即通过虚拟目录访问 html 文件时,浏览器不止是编译 html 语言, 而且向服务器发送请求,即访问服务器上的 html 文件是以 http 的协议方式去打开 例如:若图片、链接的源文件名以及当前文件名称含有中文,那么在服务器运行下图片不能 显示,文件不能链接,但是直接打开文件就完全没有问题。 2.文件名为中文可以显示吗? 答:直接打开文件名为中文名可以,在服务器下中文名打不开,显示 404 错误 3.Resume.html 和 resume.html、resume.htm、resume.Htm 相同吗?解释原因 答:Resume.html 和 resume.html 不能同时存在与同一目录,resume.htm 和 resume.Htm 也不能同时存在与同一目录。 运行时无差别,在 UNIX 操作系统中,如用".htm",那用户在浏览器窗口看到是网页的源文 件,因此 UNIX 下网页扩展名只能用".html",而对 Dos 和 Windows3.X,文件名受到"8.3" 规则限制,扩展名只能用".htm"。对 Windows 9X/NT/2000/xp,两者都可以。 在 TOMCAT 下文件名是区分大小写的。 1、设置虚拟目录 答: 2、Tomcat 服务器如果无法启动,原因是什么? 答:Tomcat 所使用的端口已经被占用或者 server.xml 文件中的设置出现错误 3、Tomcat 服务器怎样提示错误? 答:提示 404 错误或者 500 错误等 4、1-1.jsp 和 1-1.JSP 相同吗? 答:第一个是 jsp 文件,第二个不是 jsp 文件,浏览器按照 HTML 文件解释 Jsp\jSP 5、虚拟服务目录可以映射到多个不同的本地文件目录吗?一个本地文件目录可以映射多个 虚拟服务目录吗? 答:虚拟服务目录不可以映射到多个不同的本地文件目录,一个本地文件目录可以映射多个 虚拟服务目录 6、程序转译后产生的 Java 以及字节码文件存放位置? 答 : Tomcat 安 装 目 录 /work/ Catalina/localhost/ 和 虚 拟 目 录 名 称 相 同 的 文 件 夹 /org/apache/jsp/  排序后的数组值若用以下表达式输出时,会出现什么情况?注意查看其 Java 文件!注 意 thisArray[i]修改成自己程序所对应的数组名以及编号。 1) <%=out.println(thisArray[i])%> 答:出现 500 错误;即在 java 文件中写入语句 out.print(out.println(a[i]))?问题?
Out 对象是 Jspwriter 类的实例化对象,print 等方法返回类型都是 void) 2) 在 for 循环体中不写{},直接写<%= thisArray[i] %> 答: 有两种情况,情况一: <% out.println("排序后:"); change(thisArray); for(i=0;i< thisArray.length;i++)%> <%= thisArray [i] %> <%= thisArray [i] %>另起一行写,提示错误 因为转译成 Java 文件既是: for(int i=0;i <%= thisArray [i] %> <%= thisArray [i] %>连起来写,即没有空格也没有换行,不会提示错误,并且能够输出, 因为转译成 Java 文件既是: for(int i=0;i输出呢? 答:可以 ,因为转译成 Java 文件既是 for(int i=0;i
 radius.jsp 文件中半径分别设置为全局变量和局部变量,应该查看谁的 Java 文件,并 查找不同之处? 答:应该查看 main,jsp 的 Java 文件。当设为全局变量时,半径是实例变量,当设为局部变 量是,半径是方法_jspService 中的局部变量。  circle.jsp 页面可否直接运行?为什么? 答:不能,在语句 String radius=request.getParameter("radius"); double r=Double.parseDouble(radius); 中,当参数没传递过来时,radius 为空,不能对空数据 进行操作。  contentType 的值三个文件一样吗? 答:一样。 1.用户输入数字页面的页面 10 个文本框的名字可否设置相同? 答:可以,name 相同即同一类,可以使用 request.getParameterValues 获取。 2.怎样判断用户输入的是否是数字字符? 答:通过错误处理机制,try{ }catch(NumberFormatException ee){ }处理若输入的为非数 字字符,则出现错误提示。  JAVA 中的异常类处理机制? 答:Java 对异常进行了分类,不同类型的异常分别用不同的 Java 类表示,所有异常的根类 为 java.lang.Throwable,Throwable 下面又派生了两个子类:Error 和 Exception。 Error 表示应用程序本身无法克服和恢复的一种严重问题,在程序编译的时候出现的错误. 只有通过修改程序才能修正 Error. Exception 是在程序运行的时候捕捉的错误,是可以处理的异常  在页面指令中,errorPage 和 isErrorPage 属性可否同时出现? 为什么? 答:能。两个属性并不冲突,设置 isErrorPage 属性的页面也有可能发生异常。但此时的错 误处理页不能是编译时的异常,运行时异常可以处理, 例如;error.jsp, error1.jsp 捕获! <%int i=0; out.println(5/i+exception.getMessage()); %> 如果是<%int i=0 out.println(5/i+exception.getMessage()); %>缺少“;”则不能处理!!!  另外的 JSP 页面处理机制是什么? 答:可以在 web.xml 页面中进行配置如下代码: 1: 2: 3: 4: 404 /error.jsp 其中的 error.jsp 中的代码可以随意编写  若在乘法处理页面使用 try-catch 处理异常,此时显示的是 catch 捕捉的异常还是 error.jsp 页面的内容? 答:一般情况显示的是 catch 捕捉的异常,如果 catch 语句中出现错误,此时 error.jsp 内 容
 Bean 的作用域通过什么来进行设置? 简述区别? 答:Bean 的作用域是通过 scope 的值来确定的。 Scope 取值 page 时,在当前页面有效,客户离开这个页面时,jsp 取消分配的 Bean,即 释放 bean 所占有的内存空间。 Bean 取值 session 时,bean 的有效范围是库户的会话期间,如果客户的某个 web 服务目 录多个页面相互连接,每个页面都含有一个 useBean 标签,而且各个页面的 useBean 标签 中 ID 的值相同、scope 的值都是 session,那么,该客户在这些得到的 bean 是相同的一 个(占有相同的内存空间)。如果客户在某个页面更改了 bean 的值,那么其他页面 的 bean 值也随之改变。客户的会话消失,比如关闭浏览器,jsp 引擎取消分配的 bean,即释放 bean 所占有的空间。 Scope 取值 request 时,bean 的有效范围是 request 期间。客户在网站的访问期间可能请 求多个页面,如果这些页面含有 scope 取值是 request 的 usebean 标签,那么在每个页面 分配的 bean 也是互不相同的。Jsp 引擎对请求相应之后,取消分配给 jsp 页面的这个 bean。 Scope 取值 application 时,jsp 引擎为 web 服务目录下所有的 jsp 页面分配一个共享的 bean,不同的用户的 scope 取值是 application 的 bean 也都是相同的一个,也就是说, 当多个客户访问一个 jsp 页面时,任何用户对自己的 bean 的属性的变化,都会影响到其他 的用户。  若 Bean 中无 getXxx 和 setXxx 方法,可以使用 getProperty 和 setProperty 动作 标签吗? 答:不可以  表单中文本框的名字必须和 Bean 的属性——“圆的半径”设置相同吗? 答:不一定相同,若不同时则不能使用 获取参数的值,而必须用来获取属性的值。  如果读取的文件名中有汉字怎样确保汉字可以正常显示? 情况分析: (1)在列举出满足条件的文件名列表时,如果文件名中有汉字,则可否修改 Listfile 页面的 编码方式 charset 改为大写? 答:不可,因为此时不是从 request 方式获取信息,所以不用做任何修改即可正常读取。 (2)如果在表单中输入此包含汉字的文件名时,可否正常读取出此文件内容? 答:不能,因为此时是从表单中获取文件名然后更新 Bean 的成员变量,而从表单中获取汉 字就会出现乱码,所以要修改相应的代码。怎样修改呢?(思考可否修改页面指令标签?)
在 Bean 中添加关于文件名的编码转化即可,如下: public void setFileName(String s) { try{ byte a[]=s.getBytes("ISO-8859-1"); s=new String(a); fileName=s; } catch(Exception e){ fileName=s; } 必须放在 try catch 语句中,原因? 直接调用了 String 类的 getBytes("ISO-8859-1");,空对象是不可以操作方法的 出现的问题: jsp 文件下载不了或者某些小的文件下载不了,出现的问题是 java.lang.IllegalStateException: getOutputStream() has already been called for this response 原因: 1、JSp 转移后的 servlet 文件中有 out 对象  out 对象的类型为 JspWriter,JspWriter 相当于一种带缓存功能的 PrintWriter,  JSP 页面中的 out 对象相当于插入到 ServletResponse.getWriter 方法返回的 PrintWriter 对象前面的缓冲包装类对象。 即本质要调用 Response.getWriter 方法 2、即 Servlet 规范说明,不能既调用 response.getOutputStream(),又调用 response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出 IllegalStateException, 3、解决方法 3 种 (1) 在下载页面的程序末尾添加: out.clear(); out = pageContext.pushBody(); (2) 在下载页面的程序末尾添加: response.getOutputStream().close(); (3) 或者不要在%><%之间写内容包括空格和换行符(为什么?看转移后的 java 源代码)
分享到:
收藏