《Servlet和JSP学习指南》一2.2 隐藏域

    xiaoxiao2021-04-18  147

    2.2 隐藏域

    利用隐藏域来保持状态,与采用网址重写技术类似。但它不是将值添加到URL后面,而是将它们放在HTML表单的隐藏域中。当用户提交表单时,隐藏域中的值也传送到服务器。只有当页面包含表单,或者可以在页面中添加表单时,才适合使用隐藏域。这种技术胜过网址重写技术的地方在于,可以将更多的字符传到服务器,并且不需要进行字符编码。但是像网址重写一样,也只有当要传递的信息不需要跨越多个页面时,才适合使用这种技术。Customer类构建了一个客户模型,如代码清单2-2所示。代码清单2-3中的Servlet展示了如何利用隐藏域来更新客户信息。

    CustomerServlet类继承HtppServlet,并映射到三个URL模式:/customer、/editCustomer及/updateCustomer。前两个模式会调用Servlet的doGet方法,/updateCustomer调用doPost方法。/customer是这个小应用程序的入口点。它列出了init方法填入的类级customers List的客户。(在现实的应用程序中,可能是从数据库中获得客户信息)。详情见图2-4。

    如图2-4所示,每个客户都有一个edit链接。/editCustomer?id=customerId指向每个链接的href属性。一旦收到/editCustomer,Servlet就会发送一个如图2-5所示的客户编辑表单。

    如果单击第一个客户,Servlet就会发送这个包含了隐藏域的form标签:

    注意表单中的隐藏域没有?它包含了customer id,因此当提交表单时,服务器就会知道正在编辑哪个客户的信息。值得一提的是,这个表单使用了post方法,因此当提交它时,浏览器就会采用HTTP POST方法,并调用Servlet的doPost方法。

    相关资源:七夕情人节表白HTML源码(两款)

    最新回复(0)