易截截图软件、单文件、免安装、纯绿色、仅160KB

用Button调用JSP/Servlet

最后一次J2EE作业,被第二小题虐得欲死欲仙,说到底就是被两个问题折腾了,一个是JPA,另一个就是如何在JSP中通过Button调用JSP/Servlet。
在网上的无数中英文帖子间寻找答案时,有一个帖子让我印象深刻。帖子是这么说的:点击button是一个客户端的动作,调用JSP/Servlet是服务器做的事,你不可能直接让客户端调用JSP/Servlet,所以唯一的方法就是使用表单的提交按钮,在action中输入get格式的url。
由此可见对于概念的掌握是非常关键的。
得到了这个提示立刻试了下:
 <form method="get" action="DeletePerson?id=${person.id}" >
<input type="submit" value="delete" />
</form>

结果很诡异的事情发生了,无论我怎么设置,点击button后地址栏中都只有DeletePerson,设置中断Debug也确认id的值确实没有通过request传进Servlet。
研究了很久,终于发现,原来服务器在处理?x=k格式的action时,会到form内部去找name为"x"的input组件,并把该组件的value放到k的位置,如果没有找到name为"x"的input组件,就会忽略这一项。
于是设置了一个隐藏文本框,将name和value设置为想要的值,当然这时候action中的传参部分可以删掉了
<form method="get" action="DeletePerson" >
<input type="hidden" name="id" value="${person.id}"/>
<input type="submit" value="delete" />
</form>

其实这个时候完全可以把method设置为post,一样可以正常工作
当然,如果并不强调使用Button组件来调用JSP/Servlet的话,完全可以直接写个链接:
 <a href="DeletePerson?id=${person.id}" mce_href="DeletePerson?id=${person.id}">Delete</a>


相关文档:

Jsp中的自定义标签由浅到深详细讲解

一、基本概念: 1.标签(Tag): 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的 2.标签库(Tag library): 由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。 3.标签库描述文件(Tag Libr ......

正则表达式运用到JSP页面

用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="cl ......

jsp中防止sql注入的一些基本预防措施

 一、啥是sql注入
     所谓sql注入简单说就是被人钻了SQL的空子下面举个最简单的例子。
     sql 为:"select * from users where username='"+userName+"' and password='"+password+"' "
     1、攻击者只要在传入的userName加上'--上面的sql便将 ......

JSP禁止缓存代码

 //JSP禁止缓存代码

response.setHeader("Pragma","No-cache");

response.setHeader("Cache-Control","no-cache");

response.setDateHeader("Expires", 0);



//网络上的不能正确运行代码参考

if(request.getProtocol().compareTo("HTTP/1.0")==0)

{
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号