【Jsp+Servlet】Jsp内置对象-Request
2016-12-27 19:45
369 查看
Requeset对象是Jsp中的重要对象,每个request对象封装着一次用户请求,并且所有的请求参数都被封装request对象中,因此request对象是获取请求参数的重要途径。除此之外,request可代表本次请求范围,所以还可以用于操作request范围的属性。
1. 获取请求头/请求参数
Web应用是请求/响应架构的应用,浏览器发送请求时通常总会附带一些请求头,还可能包含一些请求参数发送给服务器,服务器端负责解析请求头/请求参数的就是Jsp或者Servlet ,而Jsp和Servlet取得请求参数的途径就是request.
它提供了如下几个方法来获得请求参数。
对于请求,通常我们使用form表单,但并不是每个表单域都会生成请求参数,而是有name属性的表单才会生成请求参数,在表单请求的时候我们也可以通过setCharacterEncoding(“GB2312”)来设置request编码所用的字符集。
2. 操作Request范围的属性
HttpServletRequest包含如下两个方法,用于设置和获取request范围的属性。
SetAttribute(StringattName,Object attValue):将attValue设置成Request范围的属性。
getAttribute(String attName):获取request范围的属性。
当forward用户请求时,请求的参数和请求属性都不会丢失。看下面的例子。
//draw.jsp
<html>
<body>
<form method="post" action="first.jsp">
取钱:<input type="text" name="balance">
<input type="submit" value="提交">
</form>
</body>
</html>
//first.jsp
<html>
<body>
<%
String bal=request.getParameter("balance");
if(bal<500)
{
out.println("账户减少"+bal+"元");
}
else
{
request.setAttribute("info",info);
}
%>
<jsp:forword page="second.jsp">
<%}%>
</body>
</html>
//draw.jsp 提交请求,
//first.jsp获得请求,然后对请求的钱数进行判断,如果钱数小于500,则允许之间取钱,否则将请求转发到second.jsp.
//second.jsp页面也是可以获取请求的balance参数的。
3. 执行forword或include
request还有一个功能就是执行forward和include,也就是代替JSP所提供的forward和include动作指令。
HttpServletRequest类提供了一个getRequestDispatcher(String path)方法,其中path就是希望forward或者include的目标路径,该方法返回RequestDispatcher,对象提供了如下两个方法。
forward(ServletRequestrequest,ServletResponse response):执行forward。
include(ServletRequestrequest,ServletResponse response):执行include。
如下代码可将a.jsp页面include到本页面中
getRequestDispatcher("/a.jsp").include(request,response);
如下代码可将a.jsp页面forward到本页面中
getRequestDispatcher("/a.jsp").forward(request,response);
1. 获取请求头/请求参数
Web应用是请求/响应架构的应用,浏览器发送请求时通常总会附带一些请求头,还可能包含一些请求参数发送给服务器,服务器端负责解析请求头/请求参数的就是Jsp或者Servlet ,而Jsp和Servlet取得请求参数的途径就是request.
它提供了如下几个方法来获得请求参数。
对于请求,通常我们使用form表单,但并不是每个表单域都会生成请求参数,而是有name属性的表单才会生成请求参数,在表单请求的时候我们也可以通过setCharacterEncoding(“GB2312”)来设置request编码所用的字符集。
2. 操作Request范围的属性
HttpServletRequest包含如下两个方法,用于设置和获取request范围的属性。
SetAttribute(StringattName,Object attValue):将attValue设置成Request范围的属性。
getAttribute(String attName):获取request范围的属性。
当forward用户请求时,请求的参数和请求属性都不会丢失。看下面的例子。
//draw.jsp
<html>
<body>
<form method="post" action="first.jsp">
取钱:<input type="text" name="balance">
<input type="submit" value="提交">
</form>
</body>
</html>
//first.jsp
<html>
<body>
<%
String bal=request.getParameter("balance");
if(bal<500)
{
out.println("账户减少"+bal+"元");
}
else
{
request.setAttribute("info",info);
}
%>
<jsp:forword page="second.jsp">
<%}%>
</body>
</html>
//draw.jsp 提交请求,
//first.jsp获得请求,然后对请求的钱数进行判断,如果钱数小于500,则允许之间取钱,否则将请求转发到second.jsp.
//second.jsp页面也是可以获取请求的balance参数的。
3. 执行forword或include
request还有一个功能就是执行forward和include,也就是代替JSP所提供的forward和include动作指令。
HttpServletRequest类提供了一个getRequestDispatcher(String path)方法,其中path就是希望forward或者include的目标路径,该方法返回RequestDispatcher,对象提供了如下两个方法。
forward(ServletRequestrequest,ServletResponse response):执行forward。
include(ServletRequestrequest,ServletResponse response):执行include。
如下代码可将a.jsp页面include到本页面中
getRequestDispatcher("/a.jsp").include(request,response);
如下代码可将a.jsp页面forward到本页面中
getRequestDispatcher("/a.jsp").forward(request,response);
相关文章推荐
- request和response对象(疑问:为什么servlet和jsp中可以直接使用req和res对象?如何理解内置的含义?)
- request和response对象(疑问:为什么servlet和jsp中可以直接使用req和res对象?如何理解内置的含义?)
- Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- JSP内置对象----request
- jsp内置对象【02】四种内置对象【01】page、request
- JSP基础语法之十三:Servlet取得内置对象和跳转
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- 浪潮优派培训笔记:JSP的9大内置对象之(三).与数据通信相关的4个内置对象:pageContext、request、session、application
- jsp九大内置对象之(一)request
- 在struts2中如何获取request等JSP内置对象和向它们赋值
- SCWCD(Servlet&Jsp learning)第三问-------JSP内置对象详解
- JSP内置对象request、page
- JSP内置对象之一——request
- JSP内置对象request的方法的使用
- JSP内置对象与Servlet接口的对应关系
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- JSP内置对象与Servlet子类映射表
- 浪潮优派培训笔记:JSP的9大内置对象之(二).与Input/Output有关的内置对象:out、request、response
- JSP的9个内置对象-request