首页 理论教育 Java程序设计:表现层示例-查询账户余额

Java程序设计:表现层示例-查询账户余额

时间:2023-11-01 理论教育 版权反馈
【摘要】:JSP仅作为表现层技术,作用是负责收集用户请求参数,将应用的处理结果、状态数据呈现给用户。在chapter13项目的表现层中需要创建2个JSP页面。query.jsp用于发送查询账户余额的请求,queryresult.jsp用于查询结果的响应。图13-20query.jsp程序第1行是一条page指令。如果本例在浏览器中输入http://127.0.0.1:8080/chapter13/query.jsp,则request.getContextPath()的结果为/chapter13。程序第13行request.get Attribute表示从request对象中取得名为"bankaccount"的属性,其实是Bank Account类型的对象。程序第16行中${requestScope.bankaccount.user_balance}表示从request作用域范围内取出bankaccount对象的user_balance变量值。

Java程序设计:表现层示例-查询账户余额

JSP(Java server pages)即Java服务器页面,是一种动态网页技术标准,其根本是一个简化的Servlet设计。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段和JSP标记,从而形成后缀名为.jsp的JSP文件。JSP实现了HTML语法中的Java扩展(Java代码嵌套在<%和%>之中)。JSP与Servlet一样,是在服务器端执行的。由于JSP是基于Java语言的,因此,用JSP开发的Web应用是跨平台的。

JSP仅作为表现层技术,作用是负责收集用户请求参数,将应用的处理结果、状态数据呈现给用户。

在chapter13项目的表现层中需要创建2个JSP页面。query.jsp用于发送查询账户余额的请求,queryresult.jsp用于查询结果的响应。

1.query.jsp

在Eclipse中,鼠标右键点击项目chapter13下的WebContent目录,选择【New】选项,在子菜单里选择【Other】选项,选择创建JSP文件向导,如图13-17所示。

图13-17 创建JSP文件向导

点击【Next】按钮,为新建JSP文件命名,如图13-18所示。

图13-18 为JSP文件命名

点击【Next】按钮进入选择JSP模板界面,采用默认设置即可,如图13-19所示。

图13-19 选择JSP模板

点击【Finish】按钮即完成一个JSP文件的创建。在创建后的文件里编写代码。query.jsp最终代码如图13-20所示。(www.xing528.com)

图13-20 query.jsp

(1)程序第1行是一条page指令。这里使用了page指令的language、content Type、pageEncoding属性。page指令对整个页面均有效。

(2)JSP表达式将客户端需要输出的变量或表达式封装在“<%=”和“%>”标记之间。程序第13行,JSP表达式“<%=request.getContextPath()%>”用于获取请求URL中属于Web项目的路径,这个路径以“/”开头,表示相对于整个Web站点的根目录。如果本例在浏览器中输入http://127.0.0.1:8080/chapter13/query.jsp,则request.getContextPath()的结果为/chapter13。

在form表单中填写数据后,点击“查询”按钮,将根据action的值将表单内容提交到“<%=request.getContext Path()%>/QueryServlet”这个Servlet进行处理。

JSP表单内容的提交方式分为GET请求和POST请求。这两种请求是HTTP协议中常用的请求,GET请求把表单的数据显式地放在URL中,且对长度有所限制,适合提交数据量不大、安全性不高的数据。而POST请求把表单数据放在HTTP请求体中,在浏览器的地址栏中不显示提交的信息,并且没有长度限制,适合提交数据量大、安全性高的数据。本项目“method="post"”表示采用POST请求方式。

2.queryresult.jsp

queryresult.jsp是query.jsp的响应页面。表现层将请求页面提交到控制层,由控制层调用业务层,业务层调用持久层,持久层将从数据库返回的结果封装成实体类对象后,再反方向将结果返回到表现层。因此,响应页面queryresult.jsp是最后一个环节,等学完后面几层后再来看这个页面。queryresult.jsp最终代码如图13-21所示。

图13-21 queryresult.jsp

(1)为了简化JSP开发,JSP 2.0规范了9个内置对象,它们是JSP默认创建的,可以直接在JSP页面中使用,本项目中用到的request内置对象即为其中之一。通过request对象,除了能获得用户的HTTP请求信息外,还可以通过在request对象中设置属性传递数据,在页面中取出服务器设置保存的值。request对象中的属性是通过request.set Attribute方法放入request对象中的。程序第13行(Bank Account)request.get Attribute("bankaccount")表示从request对象中取得名为"bankaccount"的属性,其实是Bank Account类型的对象。

(2)程序第15行JSP表达式“<%=ba.get User_name()%>”表示调用Bank Account类型ba对象的Getter方法获得账户名。同理,也可以通过JSP表达式“<%=ba.get User_balance()%>”获得ba对象的账户余额。不过,为了演示EL表达式,程序第16行采用EL表达式获取账户余额,这样可以对比学习

(3)EL(expression language)表达式是一种简单的数据访问语言,用于简化JSP页面的书写,EL语法格式为${表达式}。程序第16行中${requestScope.bankaccount.user_balance}表示从request作用域范围内取出bankaccount对象的user_balance变量值。EL表达式相比request.get Attribute方法显得更为简洁。注意,如果写成${bankaccount.user_balance},则表示在所有内置对象范围内寻找名为bankaccount对象的user_balance变量值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈