Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JSP从URL获取参数_Java_Jsp_Url_Get Method - Fatal编程技术网

Java 如何使用JSP从URL获取参数

Java 如何使用JSP从URL获取参数,java,jsp,url,get-method,Java,Jsp,Url,Get Method,在JSP中,如何从URL获取参数 例如,我有一个URLwww.somesite.com/Transaction\u List.jsp?accountID=5 我想买5号。 是否有请求。getAttribute(“accountID”)与会话或类似内容类似?在GET请求中,请求参数取自查询字符串(URL上问号后面的数据)。例如,URL包含两个请求参数——p1和p2。在POST请求中,请求参数取自查询字符串和请求正文中编码的已发布数据 此示例演示如何在生成的输出中包含请求参数的值: Hello &l

在JSP中,如何从URL获取参数

例如,我有一个URL
www.somesite.com/Transaction\u List.jsp?accountID=5

我想买5号。


是否有请求。getAttribute(“accountID”)与会话或类似内容类似?

在GET请求中,请求参数取自查询字符串(URL上问号后面的数据)。例如,URL包含两个请求参数——p1和p2。在POST请求中,请求参数取自查询字符串和请求正文中编码的已发布数据

此示例演示如何在生成的输出中包含请求参数的值:

Hello <b><%= request.getParameter("name") %></b>!
结果将是:

Hello <b>John Smith</b>!
Hello <b>null</b>!
你好,约翰·史密斯!
如果查询字符串上未指定名称,则输出为:

Hello <b>John Smith</b>!
Hello <b>null</b>!
你好,空!
此示例使用scriptlet中查询参数的值:

<%
    if (request.getParameter("name") == null) {
        out.println("Please enter your name.");
    } else {
        out.println("Hello <b>"+request. getParameter("name")+"</b>!");
    }
%>

请求。getParameter(“accountID”)
是您要查找的。这是JavaServletAPI的一部分。有关更多信息,请参阅。

使用EL(JSP表达式语言):

${param.accountID}

关于的,写入:

隐式对象 JSP表达式语言定义了一组隐式对象:

  • pageContext
    :JSP页面的上下文。提供对各种对象的访问,包括:
    • servletContext
      :JSP页面的servlet和同一应用程序中包含的任何web组件的上下文。请参阅访问Web上下文
    • 会话
      :客户端的会话对象。请参阅维护客户端状态
    • 请求
      :触发JSP页面执行的请求。请参阅。
    • response
      :JSP页面返回的响应。请参阅构建响应
  • 此外,还提供了多个隐式对象,可以轻松访问以下对象:
    • param
      :将请求参数名称映射到单个值
    • paramValues
      :将请求参数名称映射到值数组
    • :将请求头名称映射到单个值
    • headerValues
      :将请求头名称映射到值数组
    • cookie
      :将cookie名称映射到单个cookie
    • initParam
      :将上下文初始化参数名称映射到单个值
  • 最后,还有一些对象允许访问在使用范围对象中描述的各种范围变量。
    • pageScope
      :将页面范围内的变量名称映射到它们的值
    • requestScope
      :将请求范围内的变量名称映射到它们的值
    • sessionScope
      :将会话范围内的变量名映射到它们的值
    • applicationScope
      :将应用程序范围内的变量名映射到它们的值
有趣的部分以粗体显示:)

因此,要回答您的问题,您应该能够像这样访问它(使用EL):

或者,使用(不推荐):


如果我可以在这里添加评论

不适用于我(它打印一个0)

相反,这是可行的:


示例您想删除带有主题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\u List.jsp?accountID=5

对于这个
URL
有一个方法调用
request.getParameter
,在java中,如果您想在这里将一个数字转换成
int
,类似地,将字符串值转换成
string
。所以,根据您的要求,只需在第页的下面一行复制过去

int  accountId =(int)request.getParameter("accountID");
现在可以在整个页面中使用
accountId
调用此值

这里的
accountId
是参数的名称,您也可以使用它获取多个参数,但这不起作用。它只适用于
GET
方法,如果您点击
POST
请求,则它们将是一个错误

希望这有帮助。

第1页: 细节 第2页:
//现在您可以使用id查询hsql详细信息产品的sql了

scriptlet被认为是不好的做法。不要忘记xmlEncode。。此漏洞当前易受xss-1 for xss漏洞的影响。如果我可以投两次票的话,如果我可以用EL完成工作,那么使用scriptlet也会是-1。说真的,不要这样做。当存在更好的解决方案时,建议使用Scriptlet对代码质量有害。关于“Scriptlet被认为是不好的做法”,请参阅以获取替代方案。是否需要采取措施来启用EL?我正在使用jboss6,当我使用${param.accountID}时,它被视为来自浏览器的常规文本。@Simginer首先,文件必须是JSP,而不仅仅是纯HTML。阅读以下主题:,。这能处理URL解码吗?@vikingsteve是的,但不能处理作为HTML/XML实体的重新编码,这是防止XSS所必需的。使用JSTL
可以做到这一点。值得注意的是:param包含的值不仅仅是URL查询参数(例如模型映射中的值)。如果您需要特别检查URL查询参数中是否有值(例如,将作为表单提交的一部分提交),您可以查看${pageContext.request.queryString}-但它不像params那样分解为一个漂亮的映射。
public int delete(int subjectid) {
    String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
    return template.update(sql);
}
int  accountId =(int)request.getParameter("accountID");