最近在做一个东西的时候,用到servlet中的参数突然就分不清楚以下两者的关系:
req.getAttribute("name");
req.getParameter("name");
汗颜啦,赶紧补习下。
这两个接口都位于ServletRequest中,用来处理请求间参数传递。首先来看看
public String getParameter(String name);
客户端和服务端之间的数据传递。比如从客户端发出一个http请求(GET/POST),请求中带有请求参数,那么就可以通过这个接口获取,其中所有的参数将作为String或null返回。比如有如下请求路径:
http://localhost:8080/sample/query.htm?name=aaa&age=12
那么可以通过以下方式获取到值
String name = req.getParameter("name")
String age = req.getParameter("age")
当然,对POST请求中form表单的数据同样采用这种方式获取,其他类似的接口有:
public Enumeration getParameterNames();
public String[] getParameterValues(String name);
public Map getParameterMap();
public Object getAttribute(String name);
req.getAttribute()和setAttribute(String name, Object o)同时使用。考虑常见的场景,在执行一个查询操作后,需要将查询结果返回到页面展现,那么这个数据传递可以考虑如下使用
在servlet中:
req.setAttribute("list", new ArrayList<E>());
在页面需要获取到该数据
List list= (ArrayList)req.getAttribute("list");
当然在现在的框架下这样的代码很少写了。
另一则,以下内容参考了http://hain.iteye.com/blog/70731
继续我们来看看servlet中的参数,主要有两种context-param和init-param
1、context-param
对应application范围内的参数,存放在servletcontext中,在web.xml中配置如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
这是一个常见的加载spring的配置,这里需要在web容器启动时将spring的配置文件加载并将servletcontext装换为spring的容器中。当然基于这样的一个配置param-name是固定的contextConfigLocation了,可在相应的监听ContextLoaderListener父类中ContextLoader:
/**
* Name of servlet context parameter (i.e., {@value}) that can specify the
* config location for the root context, falling back to the implementation's
* default otherwise.
* @see org.springframework.web.context.support.XmlWebApplicationContext#DEFAULT_CONFIG_LOCATION
*/
public static final String CONFIG_LOCATION_PARAM = "contextConfigLocation";
这样就会根据这个路径去读取相关的配置文件完成加载,当然<context-param>是可以配置多个,同时也一般和一个listener相对应。
在servlet中获取该值使用
getServletContext().getInitParameter("contextConfigLocation"));
2、init-param
这个就对应servlet中的参数,配置如下
<servlet>
<servlet-name>sales</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>this is a servlet init-param</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
在servlet中获取
this.getInitParameter("name")
分享到:
相关推荐
Servlet初始化参数是在Servlet容器启动时设置的,这些参数可以在整个应用生命周期中被Servlet访问,通常用来配置Servlet的行为或应用的配置信息。本示例提供了对Servlet初始化参数的演示,帮助开发者了解如何在实际...
"Servlet获取初始化参数" Servlet 获取初始化参数是 Servlet 编程中一个非常重要的主题。下面,我们将详细地讨论如何获取应用范围初始化参数和 servlet 初始化参数。 获取应用范围初始化参数 在 web.xml 文件中,...
Servlet 初始化参数和上下文初始化参数训练及处理数据库示例 本文主要讲解 Servlet 初始化参数和上下文初始化参数的概念、定义、配置和获取方法。同时,通过实践演示,展示了如何在 Servlet 中读取初始化参数和上...
servlet读取初始化参数和属性文件的数据
本文将深入探讨如何在JSP页面中获取Servlet请求中的参数,并将其传递到另一个JSP页面。 首先,我们需要配置`web.xml`文件,这是部署描述符,它定义了Servlet的映射和配置。以下是一个示例配置: ```xml <servlet> ...
理解 Servlet 的生命周期和接受参数信息是掌握 Servlet 技术的关键。 Servlet 的生命周期 Servlet 的生命周期可以分为四个阶段: 1. 初始化:Servlet 初始化时,会读取 web.xml 文件中的配置信息,并执行 init ...
#### 三、Servlet初始化 Servlet的初始化是一个重要的步骤,涉及到资源的分配和准备。初始化过程主要由容器(如Tomcat)负责,具体步骤如下: 1. **加载Servlet类**:当服务器启动并接收到针对某个Servlet的第一个...
2. **ServletConfig**:每个Servlet实例都有一个对应的ServletConfig对象,它提供了Servlet的初始化参数和ServletContext的引用。 3. **ServletContext**:代表整个web应用的上下文,提供了获取应用级资源、注册...
4. **ServletConfig接口**:在Servlet初始化时,容器会传递一个ServletConfig对象,包含了Servlet的初始化参数和容器特定的信息。 5. **ServletContext接口**:代表了Servlet的运行时环境,提供了获取整个Web应用的...
4. **ServletConfig接口**:在Servlet初始化时,Servlet容器会传递一个ServletConfig对象给Servlet,这个对象包含了Servlet的配置信息,如Servlet名称、初始化参数等。 5. **ServletContext接口**:表示整个Web应用...
- `ServletConfig`: 代表Servlet的配置信息,包含在web.xml中定义的Servlet特定的初始化参数。 - `ServletContext`: 表示整个Web应用的上下文,可以获取Web应用的信息,如初始化参数、资源路径等。 - `...
Servlet通常在`web.xml`部署描述符文件中配置,包括Servlet的映射路径、初始化参数等。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class...
init() 方法是 SERVLET 生命周期的第一个阶段,在这个阶段,SERVLET 容器会将 SERVLET 的初始参数传递给 SERVLET。init() 方法只会被调用一次,用于完成 SERVLET 的初始化工作。 service() 方法是 SERVLET 生命周期...
在Servlet编程中,Servlet初始化参数和ServletContext对象是两个至关重要的概念。这些概念是构建Web应用程序的基础,特别是当涉及到服务器端的动态处理和应用配置时。 Servlet初始化参数是用于配置Servlet的特定...
2. `ServletConfig getServletConfig()`:返回Servlet的配置对象,可以从其中获取Servlet的初始化参数和其他配置信息。 3. `void service(ServletRequest request, ServletResponse response) throws ...
web.xml文件是Web应用的核心配置文件,用于描述Servlet的映射、初始化参数和其他Web组件的配置。例如,配置一个Servlet的基本语法如下: ```xml <servlet> <servlet-name>ServletName</servlet-name> <servlet-...
3. 如果Servlet尚未初始化,容器会创建Servlet实例并调用init()方法进行初始化。 4. 容器将请求封装成ServletRequest对象,将响应封装成ServletResponse对象,然后调用Servlet的service()方法。 5. service()方法...
5. **Servlet配置**:Servlet的配置通常在web.xml文件中进行,包括Servlet的注册、映射URL、设置初始化参数等。例如,`<servlet>`、`<servlet-mapping>`标签用于定义Servlet及其映射。 6. **Servlet上下文**:...
- `getInitParameter(String name)`和`getInitParameterNames()`: 分别用于获取初始化参数的值和参数名的枚举,方便访问Servlet配置。 - `getServletConfig()`和`getServletContext()`: 获取Servlet配置和Servlet...
这个方法只执行一次,通常用于设置Servlet的初始状态,比如获取初始化参数、建立数据库连接等。 3. **请求处理**:当客户端发送请求时,Servlet会被调用以处理请求。请求处理主要通过`service()`方法实现。该方法...