在JSP中,如何从URL获取参数?
例如,我有一个www.somesite.com/Transaction_List.jsp?accountID=5
要获取的
URL5 。
是否有request.getAttribute(“ accountID”)之类的会话或类似内容?
在JSP中,如何从URL获取参数?
例如,我有一个www.somesite.com/Transaction_List.jsp?accountID=5
要获取的
URL5 。
是否有request.getAttribute(“ accountID”)之类的会话或类似内容?
Answers:
在GET请求中,请求参数取自查询字符串(URL上问号后面的数据)。例如,URL http://hostname.com?p1=v1&p2=v2包含两个请求参数--p1和p2。在POST请求中,请求参数既取自查询字符串,也取自编码在请求正文中的发布数据。
此示例演示如何在生成的输出中包括请求参数的值:
Hello <b><%= request.getParameter("name") %></b>!
如果使用URL访问页面:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
结果输出将是:
Hello <b>John Smith</b>!
如果未在查询字符串上指定名称,则输出为:
Hello <b>null</b>!
本示例在脚本中使用查询参数的值:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
关于隐式对象中的统一表达式语言,在Java EE 5教程中写道:
隐式对象
JSP表达式语言定义了一组隐式对象:
pageContext
:JSP页面的上下文。提供对各种对象的访问,包括:
servletContext
:JSP页面的servlet和同一应用程序中包含的所有Web组件的上下文。请参阅访问Web上下文。session
:客户端的会话对象。请参阅维护客户端状态。request
:触发JSP页面执行的请求。请参阅从请求获取信息。response
:JSP页面返回的响应。请参阅构造响应。- 此外,还提供了几个隐式对象,这些对象可以轻松访问以下对象:
param
:将请求参数名称映射到单个值paramValues
:将请求参数名称映射到值数组header
:将请求标头名称映射到单个值headerValues
:将请求标头名称映射到值数组cookie
:将Cookie名称映射到单个CookieinitParam
:将上下文初始化参数名称映射到单个值- 最后,有些对象允许访问使用作用域对象中描述的各种作用域变量。
pageScope
:将页面范围的变量名称映射为其值requestScope
:将请求范围的变量名映射为其值sessionScope
:将会话范围的变量名映射为其值applicationScope
:将应用程序范围的变量名映射到它们的值
有趣的部分以粗体显示:)
因此,要回答您的问题,您应该可以这样访问它(使用EL):
${param.accountID}
或者,使用JSP脚本(不推荐):
<%
String accountId = request.getParameter("accountID");
%>
使用EL(JSP表达式语言):
${param.accountID}
<c:out value="${param.accountID}" />
来做到这一点。
如果我可以在这里添加评论...
<c:out value="${param.accountID}"></c:out>
对我不起作用(打印0)。
相反,这可以工作:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
是您要寻找的。这是Java Servlet API的一部分。有关更多信息,请参见http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html。
您想要删除带有其subject_id的主题记录的示例
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
该参数将用于查询的输入
public int delete(int subjectid) {
String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
return template.update(sql);
}
www.somesite.com/Transaction_List.jsp?accountID=5
为此,在java中URL
有一个方法调用request.getParameter
,如果要在此处强制转换为数字int
,则对于将字符串值强制转换为string
。因此,根据您的要求,只需复制到页面下面的行下方,
int accountId =(int)request.getParameter("accountID");
您现在可以accountId
在整个页面中使用此值。
这accountId
是参数的名称,您也可以使用此参数获得多个参数,但这不起作用。GET
如果您点击了POST
请求,它将仅与方法一起使用,否则它们将是一个错误。
希望这会有所帮助。