Java 传递HttpServletRequest参数是如何工作的?

Java 传递HttpServletRequest参数是如何工作的?,java,spring,servlets,Java,Spring,Servlets,现在,如果我从JSP检索,${fullname}是lastname.concat(firstname)。 让我展示一些基本的java代码,比如我调用serveletTest(“hello”) myString应该仍然是“hello”对吗 对我来说,HttpServletRequest中的getParameter()有意义,但request.setAttribute()没有意义。有人能解释一下这是怎么回事吗?我找到了我想要的答案。X( 请求调度员正在做所有的魔术 据javadoc说, void j

现在,如果我从JSP检索,${fullname}是lastname.concat(firstname)。 让我展示一些基本的java代码,比如我调用serveletTest(“hello”)

myString应该仍然是“hello”对吗


对我来说,HttpServletRequest中的getParameter()有意义,但request.setAttribute()没有意义。有人能解释一下这是怎么回事吗?

我找到了我想要的答案。X( 请求调度员正在做所有的魔术

据javadoc说,

void javax.servlet.ServletRequest.setAttribute(字符串名称,对象o)

在此请求中存储属性。属性在 此方法通常与 请求调度器

web.xml-->配置Spring MVC Dispatcher Servlet并设置URL映射

public String serveletTest(String myString){        
    System.out.println(myString);
    myString = myString.concat(world);
    return "bye world";
}

调度员
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/spring-mvc-demo-servlet.xml
1.
调度员
/

request.setAttribute(“fullname”,fullname);将字符串对象“fullname”发送到jsp。如果HttpServletRequest对您有意义,那么request.setAttribute()也应该有意义。如果您重新分配给
myString
,您将看到更新的
myString
。如
myString=myString.concat(world)
。同样的情况也适用于
fullName
场景。请检查此问题:
myString
仍将是
hello
,因为字符串是不可变的。
String.concat
不会更改字符串,但会返回一个新字符串,该字符串是concating字符串的结果。
public String serveletTest(String myString){        
    System.out.println(myString);
    myString = myString.concat(world);
    return "bye world";
}
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc-demo-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>