javaweb从入门到精通实战——JSP内置对象

  • JSP内置对象的作用: JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它起到了简化页面的作用。JSP的内置对象被广泛应用于JSP的各种操作中。由于JSP使用Java作为脚本语言,所以JSP将具有强大的对象处理能力,并且可以动态创建Web页面内容。但Java语法在使用一一个对象前,需要先实例化这个对象,这其实是件比较繁琐的事情。JSP为了简化开发,提供了一些内置对象,用来实现很多JSP应用。在使用JSP内置对象时,不需要先定义这些对象,直接使用即可。在JSP中一共预先定义了9个这样的对象,分别为request、response、 session、 application、 out、pageContext、config、 page 和exception。其中,最为常用的是request、response、 session、 application。我们将着重介绍这些内置对象及其常用方法。
一、JSP内置对象之 request
  • request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。
  • request最常用的方法是request.getParameter("");该方法的作用是接收上一个界面需要传递的值。从而实现值在不同界面之间的传递,例如:form表单里面的数据,在下一个界面可以使用该方法进行接收。
  • request还有一个较为常用的方法是request.getAttribute(“”) ; 和 request.setAttribute(arg0, “”); set方法是用来保存需要存储的信息,get方法用来获取set方法保存的信息。
  • request 还有一些其他方法
  • request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议、主机名、端口
request方法作用
request.getQueryString():请求行中的参数部分,只能显示以get方式发出的参数,post方式的看不到
request.getRemoteAddr()浏览器所处于的客户机的IP地址
request.getRemotePort():浏览器所处于的客户机使用的网络端口
request.getRemoteHost()浏览器所处于的客户机的主机名
request.getLocalAddr()服务器的IP地址
request.getLocalName()服务器的主机名
request.getMethod()得到客户机请求方式一般是GET或者POST
request.getParameter()用于获取单值的参数
request.getParameterValues()用于获取具有多值的参数。
request.getAttribute(“”) ;用于获取set保存转发的信息
request.setAttribute(“”) ;用于保存转发的信息
  • request的方法应用
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action = "" method = "post">
	<input type = "text" name = "username" />
	<input type = "submit" value = "提交" />
</form>
请求方式:<%=request.getMethod() %> <br>
请求的资源:<%=request.getRequestURL()%><br>
请求的文件路径:<%=request.getServletPath() %><br>
请求的服务器ip:<%=request.getServerName() %><br>
请求的服务器端口:<%=request.getServerPort() %><br>
客户端主机名: <%=request.getRemoteHost() %><br>
客户端ip: <%=request.getRemoteAddr() %><br>
<%
	request.setCharacterEncoding("UTF-8");
%>
表单提交的用户: <%=request.getParameter("username")%><br>
</body>
</html>
  • 运行结果为:
    在这里插入图片描述

  • 解决中文乱码问题 :在使用request方法接收上一个界面传递值时,如果出现中文则会出现乱码情况,request中有一个方法可以解决乱码问题 通过方法 request.setCharacterEncoding("UTF-8");可以解决中文乱码问题。

  • 对于存储在request.setAttribute 会话中的对象,在使用getAttribute方法接收对象值时需要进行强制类型转换,例如:String name =(Striing) request.getAttribute("name");

二、JSP内置对象之 response
  • response对象用于响应客户请求,向客户端输出信息。它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。请求的数据可以是各种数据类型,甚至是文件。response对象在JSP页面内有效。
  • 使用response 对象提供的sendRedirec()方法可以将网页重定向到另一一个页面。重定向操作支持将地址重定向到不同的主机上,这一点与转发不同。在客户端浏览器上将会得到跳转的地址,并重新发送请求链接。用户可以从浏览器的地址栏中看到跳转后的地址。进行重定向操作后,request 中的属性全部失效,并且开始一个新的request对象。
  • 例如:
      response.sendRedirect("login.jsp");   //重定向到login.jsp界面
      response.sendRedirect("www.baidu.com"); //重定向到百度引擎搜索界面
  • 使用response设置页面自动刷新 例如:使页面每10s自动刷新一次
      response.setHeader("Refresh", "10");
三、JSP内置对象之 session
  • session在网络中被称为会话。由于HTTP协议是一种无状态协议,也就是当一个客户向服务器发
    出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。为了弥补这一缺点, HTTP协议提供了session, 通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session 对象就会自动消失。这个时间取决于服务器,例如,Tomcat 服务器默认为30分钟。不过这个时间可以通过编写程序进行修改。
  • session在程序中的作用范围比request和response的作用范围广,request的作用范围在相互关联的页面之间,而session在程序中的作用是所有的界面,在所有界面都可以的都可以进行传递和接收。
  • session最常用的方法是
     session.setAttribute("name", "Object obj");     // 存储或读取客户相关信息 ,name 是指定作用域在session范围内的变量名	
     session.getAttribute("");           // 读取setAttribute保存的信息,可以在不同的界面进行接收
  • session方法在jsp界面属于内置对象,可以直接进行使用,但是在servlet中需要先申明然后才能使用,在serlvet中的使用方法如下
    HttpSession session = request.getSession();                    //先进行声明
    session.setAttribute("name", "Object obj");                
  • 对于存储在session 会话中的对象,在使用getAttribute方法接收对象值时需要进行强制类型转换,例如:String name =(Striing) session.getAttribute("name");
四、JSP内置对象之 application
  • application对象提供了对应用程序初始化参数进行访问的方法。应用程序初始化参数在web.xml文件中进行设置,web.xml 文件位于Web应用所在目录下的WEB-INF子目录中。在web.xml文件中通过<context- param>标记配置应用程序初始化参数。

  • 与session对象相同,也可以在application对象中设置属性。与session对象不同的是,session 只是在当前客户的会话范围内有效,当超过保存时间,session 对象就被收回;而application 对象在整个应用区域中都有效。application 对象管理应用程序环境属性的方法分别介绍如下。

方法名文字说明
getAttributeNames()获得所有application对象使用的属性名
getAttribute(String name)从application 对象中获取指定对象名
setAttribute(String key,Object obj)使用指定名称和指定对象在application对象中进行关联
removeAttribute(String name)从application对象中去掉指定名称的属性
  • 13
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A-莫天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值