这是我在JSP中的HTML代码
<select name="urlsel" id="selurl">
<option value="eng" name="eng"/>
<option value="mat" name="mat"/>
<option value="sci" name="sci"/>
</select>
<input type="submit" value="submit option" onsubmit="return validate()"/>
<% String opt=session.getAttribute("urlsel");
System.out.println("\n selected optiion is:+opt)
%>
上述JSP代码为 opt 提供 null 值。我在JSP中尝试使用request.getParameter("urlsel");
仍然获得 null 。
我希望所选的选项值以session.getAttribute("urlsel");
我怎样才能得到它?我希望使用session.getAttribute("urlsel");
来在我的servlet和servlet中使用此值
但是变空了。
请帮帮我。
答案 0 :(得分:4)
为了从会话或请求获取属性,在此之前必须在代码中的某处设置/添加(即第一设置属性,然后你可以得到它们。)
简而言之:在你的情况下,而不是在会话或请求对象上使用getAttribute(String name)
,使用 request.getParameter(String name)
强>
您要在此处尝试完成检索使用HTML表单传递的参数。为了做到这一点,请使用getParameter(String name)
方法,例如:
String selectValue = request.getParameter("urlsel")
传统上使用HTTP表单传递的值在servlet 中检索,然后您可以执行任何操作。
正如我在您的示例中所看到的,您正在使用 PHP 方式。尽管不是Java Web应用程序开发中最常用的方法,但是您可以使用implicit object从 param Expression Language检索使用HTML表单在JSP中传递的参数(您应该{{3 }})。
这是一个JSP页面的简单示例,用于展示在同一页面中检索使用HTML form 元素提交的参数(如示例所示):
test.jsp的
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Test Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>Test Page</h1>
<form action="" method="post">
<p>Choose some course</p>
<select name="course">
<option value="English" name="eng">English</option>
<option value="Math" name="mat">Math</option>
<option value="Computer Science" name="sci">Computer Science</option>
</select>
<p><input type="submit" value="Pass data" /></p>
</form>
<hr />
<h2>Testing passed parameters</h2>
<p>Passed "course" parameter = <span style="color: #FF0000">${param.course}</span></p>
</body>
</html>
请注意 EL 的使用情况:${param.course}
,其中“ param ”是其中一个avoid scriptlets in your JSP和“ course < / em>“是 select 元素的名称,其值通过提交HTML表单传递。
另请查看以下答案以获取更多信息:implicit objects。
P.S。
您可能会发现阅读一些涉及servlet和JSP的教程很有用。这是一个流行的教程,有很好的解释和易于理解的例子: