用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和Servlet中的绝对路径和相对路径问题困扰了我好几天,经过努力之后将其部分心得和大家共享。
前提:假设你的Http地址为http://192.168.0.1/你的web应用为webapp,那么你的web应用URL为http://192.168.0.1/webapp/
web应用的目录结构:
webapp/
web-inf/
......
很多例如登录或者注销登录的地方需要使用到Cookie,今天学到在JSP中如何操作Cookie分享下
4.Cookie类常用的方法
1.setValue()/getValue() —>获取cookie对象的值。
2.getName()—>获取cookie对象的名称,循环的时候可以有选择的使用Cookie
3.setMaxAge()/getMaxAge()—>设置或获取cookie对象有 ......
开发中,常常需要对指定的请求格式进行过滤。
比如,Struts2的应用中,往往要过滤掉 *.jsp的请求
※http://127.0.0.1:8080/Sample/login.action这样的请求被允许。
※http://127.0.0.1:8080/Sample/login.jsp这样的请求应该被过滤,并指定跳转到某个页面或执行某个Action等等
Struts2中的过滤器负责过滤所 ......
在Tomcat下JSP、Servlet和JavaBean环境的配置
经常看到jsp的初学者问tomcat下如何配置jsp、servlet和bean的问题,于是总结了一下如何tomcat下配置jsp、servlet和ben,希望对那些初学者有所帮助。
第一步:下载j2sdk和tomcat:到sun官方站点(http://java.sun.com/j2se/1.4.2 /download.html)下载j2sdk,注意下载版 ......