`
m635674608
  • 浏览: 5044274 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

servlet request.setParameters 方法 自创

    博客分类:
  • java
 
阅读更多

由于需求需要,,,,像request.setParameters 一样的方法。所以了,,,,,,简单的写了一个实现方法

/**
    * 设置Parameters 的值
    * @param key
    * @param val
    */
    public void setParameters(String key,String val){
    	Map m = getRequest().getParameterMap();
		java.lang.reflect.Field lockedField;
		try {
			lockedField = m.getClass().getDeclaredField("locked");
			lockedField.setAccessible(true);
			//System.out.println(lockedField.get(m));
			lockedField.set(m, false);
			//System.out.println(lockedField.get(m));
			m.put(key, val);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}
	
    }

   

	public void doFilter(ServletRequest servletRequest,
			ServletResponse servletResponse, FilterChain arg2)
			throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest) servletRequest;
		HttpServletResponse response = (HttpServletResponse) servletResponse;
		//StringBuffer buffer=request.getRequestURL();
		try {
			ParameterRequestWrapper parameterRequestWrapper = new ParameterRequestWrapper(request);
			arg2.doFilter(parameterRequestWrapper, servletResponse);
		} catch (Exception e) {
			log.error(e.getLocalizedMessage(), e);
			request.setAttribute("exceptionMsg", e);
			request.getRequestDispatcher(errorPage).forward(request, response);
		}
	}

 

public class ParameterRequestWrapper extends HttpServletRequestWrapper {


	public ParameterRequestWrapper(HttpServletRequest request) {
		super(request);
	}

	public String getParameter(String name) {
		String v = super.getParameter(name);
		if(v == null){
			v = (String)getParameterMap().get(name);
		}
	    return v;
	}
}

 

0
0
分享到:
评论

相关推荐

    对Servlet 中 request.setEncoding("utf-8")的分析

    当调用`request.setEncoding("utf-8")`时,实际上是调用了`Request`类的`setCharacterEncoding`方法。这个方法首先检查一个布尔变量`usingReader`。如果`usingReader`为`true`,则意味着已经调用了`getReader()`...

    request.getcontextPath()_详解

    在 Java Servlet 规范中,request.getcontextPath()方法是用于获取当前请求的Context Path的。该方法返回一个字符串,表示当前Web应用程序的Context Path。如果当前Web应用程序是根目录的话,返回的字符串为空。 ...

    javax.servlet.jar下载

    Files contained in javax.servlet.jar: META-INF/MANIFEST.MF javax/servlet/http/LocalStrings.properties javax.servlet.http.HttpSessionBindingListener.class javax.servlet....

    tomcat10升级单个jar里面的jakarta.servlet.http.HttpServletRequest

    入参的HttpServletRequest必须为:import jakarta.servlet.http.HttpServletRequest; 运行cmd,再该目录下执行: 执行步骤:java -jar jakartaee-migration-1.0.1.jar commons-fileupload-1.4.jar commons-...

    JAVA过滤器filter request.setCharacterEncoding仅对POST提交起作用,对GET提交还是会出现乱码问题

    首先,`HttpServletRequest`对象的`setCharacterEncoding`方法是用来设置请求体的字符编码,也就是用于处理POST请求中的数据编码。当你在过滤器中调用`request.setCharacterEncoding("UTF-8")`时,它会确保POST请求...

    request.getParameter() 和request.getAttribute() 区别

    在探讨`request.getParameter()`与`request.getAttribute()`的区别之前,我们首先需要理解这两个方法的基本概念以及它们在Java Web开发中的作用。 ### `request.getParameter()` `request.getParameter()`是...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    - `javax.servlet.jsp.tagext.TagSupport`: 标签库中的自定义标签的基础类,提供了与JSP页面交互的方法。 - `javax.servlet.jsp.HttpJspPage`: 扩展了JspPage接口,添加了对HTTP特性的支持。 4. **如何引入javax....

    javax.servlet.jar与javax.servlet.jsp.jar

    在Java Web开发中,`javax.servlet.jar`和`javax.servlet.jsp.jar`是两个非常重要的库文件,它们分别提供了Servlet和JSP(JavaServer Pages)的核心API。这两个库是开发基于Java的Web应用程序不可或缺的部分,特别是...

    java中request.getcontextPath()的意思.doc

    在 Servlet 中,我们可以使用 request.getScheme() 方法来获取当前请求的协议名称,例如 http 或 https。使用 request.getServerName() 方法可以获取当前请求的主机名,例如 localhost 或 www.example.com。使用 ...

    javax.servlet.jar,javax.servlet.jsp.jar

    因此,"javax.servlet.jar"和"javax.servlet.jsp.jar"这两个JAR文件在EJB中是默认不包含的,需要单独引入。这两个库是Java Servlet和JavaServer Pages(JSP)技术的基础,对于构建基于Java的Web应用程序至关重要。 ...

    javax.servlet.jsp.jar

    javax.servlet.jsp_2.0.0.v201101211617.jar,javax.,servlet,jsp

    javax.servlet.jsp.jstl-api-1.2.1.jar

    javax.servlet.jsp.jstl-api-1.2.1.jar

    javax.servlet.jar包下载

    在Java编程环境中,`javax.servlet.jar` 是一个非常重要的库,它包含了Servlet和JSP(JavaServer Pages)的核心API,是开发Web应用程序的基础组件。这个包由Java EE(Enterprise Edition)标准提供,允许开发者创建...

    javax.servlet 的JAR包

    javax.servlet JAR包,解决找不到 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; jar包问题

    servlet-api.jar 下载地址

    - `Servlet`: 这是所有Servlet的基类,定义了Servlet的基本方法,如`init()`(初始化Servlet)、`service()`(处理请求)和`destroy()`(销毁Servlet)。 - `GenericServlet`: 它实现了`Servlet`接口,提供了通用...

    数据库测试test.sql

    import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.*; import java.io.IOException; import java.net.URLEncoder;...

    servlet3.0.zip

    这个压缩包“servlet3.0.zip”包含两个核心的JAR文件:“javax.servlet-javadoc.jar”和“javax.servlet.jar”,它们分别提供了Servlet API的文档和实现。 1. **Servlet API**: - `javax.servlet`包是Servlet API...

    servlet2.4doc

    attributeAdded(ServletContextAttributeEvent) - Method in interface javax.servlet.ServletContextAttributeListener Notification that a new attribute was added to the servlet context. attributeAdded...

    Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别.doc

    - **定义**:`getServletPath()`方法返回客户端请求的servlet路径,即请求URL中除去上下文路径后的部分,通常是映射到某个Servlet的具体路径。 - **应用场景**:主要用于确定客户端请求的具体资源或Servlet。 - **...

    servlet.jar包

    Servlet.jar包是Java Web开发中的核心组件之一,它包含了Servlet API和JSP(JavaServer Pages)API的类库,使得开发者能够创建动态、交互式的Web应用程序。Servlet是Java编程语言中用于扩展服务器功能的接口,而JSP...

Global site tag (gtag.js) - Google Analytics