RequestContext.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.ssssssss.context;
  2. import com.ssssssss.expression.ExpressionEngine;
  3. import javax.servlet.http.HttpServletRequest;
  4. import java.util.ArrayList;
  5. import java.util.Enumeration;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. public class RequestContext extends HashMap<String,Object> {
  9. private HttpServletRequest request;
  10. private List<Object> parameters = new ArrayList<>();
  11. private ExpressionEngine engine;
  12. public RequestContext(HttpServletRequest request,ExpressionEngine engine) {
  13. this.request = request;
  14. this.engine = engine;
  15. Enumeration<String> parameterNames = request.getParameterNames();
  16. while (parameterNames.hasMoreElements()){
  17. String key = parameterNames.nextElement();
  18. put(key,request.getParameter(key));
  19. }
  20. put("header",new HeaderContext(request));
  21. put("cookie",new CookieContext(request));
  22. put("session",new SessionContext(request.getSession()));
  23. }
  24. /**
  25. * 获取HttpServletRequest对象
  26. */
  27. public HttpServletRequest getRequest() {
  28. return request;
  29. }
  30. /**
  31. * 追加SQL参数
  32. *
  33. * @param value
  34. */
  35. public void addParameter(Object value){
  36. this.parameters.add(value);
  37. }
  38. /**
  39. * 获取SQL参数
  40. * @return
  41. */
  42. public List<Object> getParameters() {
  43. return parameters;
  44. }
  45. /**
  46. * 执行表达式
  47. * @param expression 表达式
  48. */
  49. public Object evaluate(String expression){
  50. return engine.executeWrap(expression,this);
  51. }
  52. }