java web经验小结

来源:互联网 发布:乐清知临公立宿舍学校 编辑:程序博客网 时间:2024/05/19 18:47

1.重新认识表单提交get和post方式

1.1  假设<form action="news.jsp?ac=ty" method="get">然后news.jsp用request.getParameter("ac")就会拿不到,为空。改成post方式才可以。当然,可以把这个参数(ac)改成隐藏域,然后get方式就可以(这里new.jsp换成xxxServlet效果是一样的)。

比较奇葩的是用超链接<a href="news.jsp?ac=ty">传递参数却可以接收到。所以对那些不敏感内容如搜索信息我觉得完全不需要表单,用超链接加上javascript、jquery(用来获取用户提交的Input内容)然后get一下就可以。实际验证也是可行的,代码如下:

<!-- A页面 -->  <script type="text/javascript">function got(){var username=document.getElementById("username").value;window.location="news.jsp?u="+username+"";}</script><input type="text" name="username" id="username"/><a href="javascript:got()">sss</a> <!-- 跳转后的news页面 -->  <%=request.getParameter("u") %>

   1.2  传说中:对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

但是,对于如下片段(注意:文本框参数ac和action里面参数ac重名了)
<form method="get" action="news.jsp?ac=ty"><input type="text" name="ac"/><input type="submit" value="go"/></form>
在news.jsp中将得到form表单中文本框的内容,而如果将上面片段form提交方式改成post,则news.jsp永远只会得到ty。
综合上述两例,相信你会重新厘清get和post的。

2.写dao层方法时注意写上return null,不能图省事return一次就完,会导致后续出现未知错误。原因在于new(无参构造方法)了一个javabean,它就不为空,但是各属性却为空;另一方面:若申明某javabean为空,后续就不能对其属性赋值了。


0 0
原创粉丝点击