JSP中的session.getAttribute()给出null值

这是我在JSP中的HTML代码

       

上面的JSP代码为opt提供了null值。 我试过request.getParameter("urlsel"); 在JSP中仍然是null

我想用session.getAttribute("urlsel");回答所选的选项值session.getAttribute("urlsel");

我怎么才能得到它? 我想在我的servlet和servlet中使用session.getAttribute("urlsel");
但是变空了。

请帮帮我。

为了从会话请求中获取属性,在执行此操作之前,必须在代码中的某处设置/添加它(即首先设置属性, 然后您可以获取它们)。

简而言之: 在您的情况下 ,不要在会话请求对象上使用getAttribute(String name) ,而是使用request.getParameter(String name)


您要在此处尝试完成的是检索使用HTML表单传递的参数 。 为了做到这一点,使用getParameter(String name)方法,如:

String selectValue = request.getParameter("urlsel")

传统上,使用HTTP表单传递的值在servlet中检索 ,然后您可以执行任何操作。

正如我在您的示例中所看到的,您正在使用这种PHP方式。 虽然不是Java Web应用程序开发中最常用的方法,但是您可以使用表达式语言从param 隐式对象中检索使用HTML表单在JSP中传递的参数 (您应该避免在JSP中使用scriptlet )。


简单的例子

这是一个JSP页面的简单示例,用于展示在同一页面中检索使用HTML 表单元素提交的参数(如示例所示):

test.jsp的

 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>    Test Page    

Test Page

Choose some course


Testing passed parameters

Passed "course" parameter = ${param.course}

注意EL的用法: ${param.course} ,其中“ param ”是其中一个隐式对象的名称,“ course ”是select元素的名称,其值通过提交HTML表单传递。

另请参阅以下答案以获取更多信息:将变量从JSP传递到servlet 。


PS

您可能会发现阅读一些涉及servlet和JSP的教程很有用。 这是一个流行的教程,包含很好的解释和易于理解的示例:

初级和中级Servlet和JSP教程