一尘不染

JSP中的session.getAttribute()提供空值

jsp

这是我在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* 赋予了 值。我在JSP中尝试过仍为 null
request.getParameter("urlsel"); ***

我想要选择的选项值答案 session.getAttribute("urlsel");

我怎么才能得到它?我想要在我的servlet和servlet中使用session.getAttribute("urlsel");
但却为null的该值。

请帮我。


阅读 812

收藏
2020-06-08

共1个答案

一尘不染

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

因此,简短的答案是: 在您的情况下 ,请使用而不是getAttribute(String name)会话请求 对象上使用request.getParameter(String name)


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

String selectValue = request.getParameter("urlsel")

传统上,使用HTTP形式传递的值是在Servlet中检索的 ,然后您可以对它们进行任何处理。

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


简单的例子

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

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
”是隐式对象之一的名称,而“
course ”是 select 元素的名称,其值是通过提交HTML表单传递的。


聚苯乙烯

您可能会发现阅读一些有关servlet和JSP的教程很有用。这是一个受欢迎的教程,提供了很好的解释和易于理解的示例:

2020-06-08