软件开发基础(.Java)实验指导书V2(7)
int count = 0; String dbPath;
public void jspInit(){ try{
dbPath = getServletContext().getRealPath(\FileInputStream fis = new FileInputStream(dbPath); DataInputStream dis = new DataInputStream(fis); count = dis.readInt(); dis.close(); }
catch(Exception e){
log(\} } %>
<%--下面是向浏览器输出的主要内容,
它将成为产生的_jspService()方法的一部分 --%>
<% count++; %>Welcome! You are <%= count %>th visitor(s). <%!
public void jspDestroy(){ try{
FileOutputStream fos = new FileOutputStream(dbPath); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(count); dos.close(); }
catch(Exception e){
log(\} } %>
19
(四)输入并运行下面的import_test.jsp页面:
<%@ page import=\
<% Date date = new Date();
String s = DateFormat.getDateInstance().format(date);
String s2 = DateFormat.getDateInstance(DateFormat.FULL).format(date); %>
访问上述JSP页面,输出结果如下图所示:
图6.2 import_test.jsp页面的运行结果
可以看到页面中最后一行的中文显示为乱码,将下面代码加到JSP页面中: <%@ page contentType=\
重新访问页面,中文显示正常。这说明可以使用page指令的contentType属性指定页面输出使用的字符编码。默认情况下,JSP页面使用的字符集是iso-8859-1编码,如使用汉字编码应指定为gb2312或gbk。
(五) errorPage属性和isErrorPage属性的使用。
【步骤1】下面的hello.jsp页面执行时将抛出一个异常,它指定了错误处理页面为errorHandler.jsp。
<%@ page contentType=\
<%@ page errorPage=\
<%String name = request.getParameter(\if (name==null){
throw new RuntimeException(\没有指定name 属性。\} %>
Hello, <%=name%>
【步骤2】下面的errorHandler.jsp是错误处理页面。
<%@ page contentType=\<%@ page isErrorPage=\
20
请求不能被处理:<%=exception.getMessage()%>
请重试!
用下面的URL访问hello.jsp页面,就会产生下面结果: http://localhost:8080/bookstore/hello.jsp
图6.3 errorHandler.jsp页面的运行结果
这说明没有提供name参数,hello.jsp页面中抛出RuntimeException异常,所以调用错误页面。
如果使用下面URL访问 hello.jsp页面,将产生下面正常的页面: http://localhost:8080/bookstore/hello.jsp?name=Mary
图6.4 hello.jsp页面的运行结果
注意:如果请求参数值使用汉字,仍然产生乱码,例如: http://localhost:8080/bookstore/hello.jsp?name=欧阳清风
这是因为请求参数默认使用iso-8859-1编码传递,如果要正确显示中文,应将请求参数编码转换为gb2312编码。
按下面方法修改hello.jsp页面,将请求参数值编码转换为汉字编码。 <%@ page contentType=\<%@ page errorPage=\
<%String name = request.getParameter(\if (name==null){
throw new RuntimeException(\没有指定name 属性。\} else{
// 将字符串name的字符编码转换为汉字编码
name = new String(name.getBytes(\} %>
Hello, <%=name %>
21
(六)输入并执行下面JSP页面,文件名为counter.jsp
<%@ page language=\<%! int count = 0; %> <% count++; %>
Welcome! You are visitor number <%= count %> 【步骤1】该JSP页面包含哪些JSP语法元素。在浏览器中访问该页面,输出结果如何?多次刷新页面,结果如何?
【步骤2】打开counter.jsp转换后的源文件counter_jsp.java,对应的类文件在哪里?文件名是什么?
【步骤3】查看count变量是在哪里声明的?
【步骤4】将上面JSP页面中的<%! int count = 0; %>一行改为<% int count = 0; %>,页面能否正常执行,它与上面页面有什么区别?
(七)运行下面persistent_counter.jsp页面,体会如何实现持久的计数器的? <%@ page language=\<%!
int count = 0; String dbPath;
public void jspInit(){ try{
dbPath = getServletContext().getRealPath(\FileInputStream fis = new FileInputStream(dbPath); DataInputStream dis = new DataInputStream(fis); count = dis.readInt(); dis.close(); }
catch(Exception e){
log(\} } %>
<%--下面是向浏览器输出的主要内容,
它将成为产生的_jspService()方法的一部分 --%>
<% count++; %>Welcome! You are <%= count %>th visitor(s). <%!
public void jspDestroy(){ try{
FileOutputStream fos = new FileOutputStream(dbPath); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(count); dos.close(); }
catch(Exception e){
log(\} } %>
22
(八)输入并运行下面的import_test.jsp页面:
<%@ page import=\
<% Date date = new Date();
String s = DateFormat.getDateInstance().format(date);
String s2 = DateFormat.getDateInstance(DateFormat.FULL).format(date); %>
访问上述JSP页面,输出结果如下图所示:
图6.2 import_test.jsp页面的运行结果
可以看到页面中最后一行的中文显示为乱码,将下面代码加到JSP页面中: <%@ page contentType=\
重新访问页面,中文显示正常。这说明可以使用page指令的contentType属性指定页面输出使用的字符编码。默认情况下,JSP页面使用的字符集是iso-8859-1编码,如使用汉字编码应指定为gb2312或gbk。
(九) errorPage属性和isErrorPage属性的使用。
【步骤1】下面的hello.jsp页面执行时将抛出一个异常,它指定了错误处理页面为errorHandler.jsp。
<%@ page contentType=\
<%@ page errorPage=\
<%String name = request.getParameter(\if (name==null){
throw new RuntimeException(\没有指定name 属性。\} %>
Hello, <%=name%>
【步骤2】下面的errorHandler.jsp是错误处理页面。
<%@ page contentType=\<%@ page isErrorPage= …… 此处隐藏:1423字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




