
什么是request对象
Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。
request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。
在JS中获取到request,网页地址的方法:
windowlocationhref这里假设URL完整为:baiducom/indexhtmltest=233333
这里要取request中值的属性,可以使用正则表达式获取
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
首先使用RegExp构造一个正则正则表达式对象
var reg = new RegExp("(^|/|&)test=([^&])(&|$)", "i");参数
pattern 一个字符串,指定了正则表达式的模式或其他正则表达式。
attributes 可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
修饰符
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。
然后使用match匹配出结果来
var match= windowlocationhrefmatch(reg);match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
参数
searchvalue 规定要检索的字符串值。
regexp 规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。
取出结果
match[2]返回:233333
将它封装为一个函数
function getRequestValue(name) {var reg = new RegExp("(^|/|&)" + name + "=([^&])(&|$)", "i");
var match= windowlocationhrefmatch(reg);
return match&&match[2]||null;
}
完整实例代码:
<html><head>
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
function getValue(name) {
var reg = new RegExp("(^|/|&)" + name + "=([^&])(&|$)", "i");
var match= windowlocationhrefmatch(reg);
return match&&match[2]||null;
}
consolelog(getValue('test'));
</script>
</html>
Java获取request对象
ActionContext ctx = ActionContextgetContext();
>
在SpringMVC中获取request对象
1注解法
@Autowired
private >
import javaioIOException;
import javaxservletFilter;
import javaxservletFilterChain;
import javaxservletFilterConfig;
import javaxservletServletException;
import javaxservletServletRequest;
import javaxservletServletResponse;
import javaxservlet> }//<span style="white-space:pre"> </span>得到request对象 t request = RequestFilterthreadLocalget();}filter>
<filter-name>RequestFilter</filter-name>
<filter-class>类路径RequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RequestFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>RequestFilter</filter-name>
<url-pattern>do</url-pattern>
</filter-mapping>如果是这样的话,我们需要使用一个 ThreadLocal 变量,我们把当前 request 的变量绑定到里面,在一个 request 请求的生命周期内我们在方法调用的各个更深的层次中都可以直接使用它而不需要在每个方法中都传递这个 request 参数,保存在某个地方就容易导致因为多个请求共用同一个实例而出问题,所有 context 相关的变量不保存在任何业务类相关并且可能被多线程共用的对象实例中才是保证不会出现线程安全问题的途径。
例如,这个例子中我们只要把 webxml 中配置好 ContextFilter 后它就会自动在请求开始时绑定一个 context,结束后自动销毁,在这中间的任何时刻我们都可以通过 MyWebContextgetCurrentContext() 得到我们的 >
javascript中获取java变量值的方式如下:
方法一:加上单引号
在JSP中 <% String guser = "abc"%>
在同一jsp中
function checkAll()
{
var gusername = '<%=guer%>';//新建一个变量
alert(gusername);//d出一个窗口
}
方法二:用隐藏域
<%
String guser = "abc";
%>
<script language="javascript">
function checkAll()
{
var gusername = documentform1uservalue;
alert(gusername);
}
<form name="form1">
<input type= "hidden" name ="user" value="<%= guser%>" />//隐藏域有数据
</from>
获得request对象有三种方式:
方式一:aware接口注入,即实现ServletRequestAware接口(此方式最为麻烦)
public class Demo2ServletAction extends ActionSupport implements ServletRequestAware{
private >
@Override
public String execute() throws Exception {
requestsetAttribute("gf", "request_aware");
return SUCCESS;
}
@Override
public void setServletRequest(>
thisrequest = request;
}
}
方式二:使用ServletActionContext工具类(此方式虽好,但与servlet api耦合)
public class Demo1ServletAction extends ActionSupport{
@Override
public String execute() throws Exception {
ServletActionContextgetRequest()setAttribute("gf", "request");
return SUCCESS;
}
}
方式三:通过ActionContext来获得(此方式与servlet api解耦,建议使用)
public class Demo3ServletAction extends ActionSupport{
@Override
public String execute() throws Exception {
ActionContextgetContext()put("gf", "request");
return SUCCESS;
}
}
以上就是关于js函数中怎么获取request中值的属性全部的内容,包括:js函数中怎么获取request中值的属性、java怎么获取request对象、如何在SpringMVC中获取request对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)