最近在做一个东西的时候,用到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获取初始化参数.doc Servlet获取初始化参数.doc
Servlet初始化参数和上下文初始化参数训练及处理数据库示例[汇编].pdf
servlet读取初始化参数和属性文件的数据
缺省的 init() 方法设置了 Servlet 的初始化参数,并用它的 ServletConfig 对象参数来启动配置, 因此所有覆盖 init() 方法的 Servlet 应调用 super.init() 以确保仍然执行这些任务。在调用 service() 方法之前,应...
在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain): 这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先...
2、掌握Servlet初始化参数的设置和读取 2、通过重写init、destory、service函数体会Servlet的生命周期 3、Servlet初始化参数
Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()...
JSP & Servlet 技术总结 ...6. 在web.xml里配置的初始化参数怎么才能读回来? 12 7. 如何获得网页中form表单中的参数 12 8. session跨请求(页面)传数据怎么实现? 12 9. 过滤器如何使用? 13 10. 监听器如何使用? 13
1.4 Servlet 与其他技术的比较 ........................................................................................................................14 1.5 与 Java 平台企业版的关系 ......................
实例1:获取初始化参数 实例2:Servlet获取服务器的运行参数 } 实例3:Servlet处理HTML表单 实例1:获取初始化参数 实例2:Servlet获取服务器的运行参数 } 实例3:Servlet处理HTML表单
注意:每个servlet有一个ServletConfig,...如果修改XML来改变一个初始化参数的值,只有当Web应用重新部署时Web应用其他部分才会看到,因为servlet只会初始化一次,在初始化时会为它提供ServletConfig和ServletContext。
学习 Servlet 用于学习 servlet 的 Git 项目 要在 Eclipse 中运行此项目,请将其作为 Maven 项目导入。... e76048fb - 添加到它的初始化参数和 servlet 上下文参数 e8632ca7 - 为 servlet 和 init 参数引入的注释
Servlet 与其他技术的比较 ........................................................................................................................ 14 与 Java 平台企业版的关系 .............................
javax.servlet.ServletContext接口(上下文参数)是针对整个项目的全局设置, 而javax.servlet.ServletConfig接口(初始化参数)是针对当前Servlet的设置。 两者的设置内容都写在web.xml中。在Eclipse中新建Servlet时, ...
Tomcat 10 5 初始化和预装载servlet与JSP页面 10 5.1 分配servlet初始化参数 10 5.2 分配JSP初始化参数 13 5.3 提供应用范围内的初始化参数 15 5.4 在服务器启动时装载servlet 15 6 声明过滤器 16...
3、通过标签来配置初始化参数.................................7 2.4 Get请求和Post请求 ................................................................7 2.5 ServletRequest ................................
这两个参数与容器相关,如果想在servlet中作单元测试,则必须初始化这两个参数。 4、如果一个servlet中有很多个方法,则必须采用传递参数的形式,分解到每一个方法中。 2重构servlet 针对servlet以上的特点,我们...
开发OpenAPI流程及说明 1.UAP与Restlet框架的集成 ...UAPRestJaxRsApplication:application级别的参数,只有第一次调用servlet时会执初始化 将上述配置的信息移入hotwebs/nccloud工程项目下 相应的配置信息如下:
<context-param></context-param> context-param元素声明应用范围内的初始化参数。 <filter></filter> 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。 <filter-mapping></filter-mapping> ...