HttpServletRequest类中的getAttribute()和getParameter()方法有什么区别?
当前回答
通常,参数是一个字符串值,最常见的是从客户端发送到服务器(例如表单post)并从servlet请求检索的值。令人沮丧的例外是ServletContext初始参数,它们是在web.xml中配置的字符串参数,存在于服务器上。
属性是存在于指定范围内的服务器变量,即:
应用程序,在整个应用程序的生命周期内可用 会话,在会话的生命周期内可用 请求,仅在请求的生命期内可用 页面(仅限JSP),仅对当前JSP页面可用
其他回答
getParameter()返回http请求参数。那些从客户端传递到服务器的信息。例如http://example.com/servlet?parameter=1。只能返回字符串 getAttribute()仅供服务器端使用—您可以在同一个请求中使用属性填充请求。例如,在servlet中设置一个属性,然后从JSP中读取它。可以用于任何对象,而不仅仅是字符串。
getparameter ():
<html>
<body>
<form name="testForm" method="post" action="testJSP.jsp">
<input type="text" name="testParam" value="ClientParam">
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<%
String sValue = request.getParameter("testParam");
%>
<%= sValue %>
</body>
</html>
request.getParameter("testParam")将从名为"testParam"的输入框的发布形式中获取值,即"Client param"。然后它会把它打印出来,所以你应该在屏幕上看到“Client Param”。因此request.getParameter()将检索客户端已提交的值。您将在服务器端获得该值。
getattribute (): request.getAttribute(),这都是服务器端完成的。你将属性添加到请求中,并将请求提交给另一个资源,客户端不知道这一点。所以所有处理这个问题的代码通常都在servlet中。getAttribute总是返回对象。
getAttribute()和getParameter()之间的基本区别是返回类型。
java.lang.Object getAttribute(java.lang.String name)
java.lang.String getParameter(java.lang.String name)
另一种应该使用.getParameter()的情况是在jsp中转发参数:
<jsp:forward page="destination.jsp">
<jsp:param name="userName" value="hamid"/>
</jsp:forward>
在destination.jsp中,你可以像这样访问userName:
request.getParameter("userName")
通常,参数是一个字符串值,最常见的是从客户端发送到服务器(例如表单post)并从servlet请求检索的值。令人沮丧的例外是ServletContext初始参数,它们是在web.xml中配置的字符串参数,存在于服务器上。
属性是存在于指定范围内的服务器变量,即:
应用程序,在整个应用程序的生命周期内可用 会话,在会话的生命周期内可用 请求,仅在请求的生命期内可用 页面(仅限JSP),仅对当前JSP页面可用
推荐文章
- 一对多、多对一、多对多的区别?
- 从枚举中选择一个随机值?
- 如何从URL获取参数与JSP
- 如何在Eclipse中生成Javadoc注释?
- 找到java类从哪里加载
- 从集合中随机选取一个元素
- 为什么x == (x = y)和(x = y) == x不一样?
- 什么Java 8流。收集等价物可在标准Kotlin库?
- 等待未来的名单
- 如何检查JSON键是否存在?
- 为什么MongoDB Java驱动在条件中使用随机数生成器?
- 即使从未抛出异常,使用try-catch块的代价是否昂贵?
- 什么时候我们应该使用观察者和可观察对象?
- Java中的split()方法对点(.)不起作用。
- Eclipse调试器总是阻塞在ThreadPoolExecutor上,没有任何明显的异常,为什么?