内置对象指在编辑JSP文件时不用做任何声明就可以使用的对象,常用的内置对象有:out,request,response,session。另还有其他内置对象,如:application,exception,pageContext,page,config。
1、输出对象(out)
例子:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>out对象简单实例</title> </head> <body> <h1>out对象简单实例</h1> <p> 缓冲区大小为:<%=out.getBufferSize() %><br> 是否自动清除缓冲区:<%=out.isAutoFlush() %><br> 缓冲区目前所剩:<%=out.getRemaining() %><br> </p> </body> </html>
结果为:
2、请求对象(request)
jsp中可以使用窗体隐藏字段传递外,还可以用setAttribute()和getAttribute()方法,下面为此方法的例子。setAttribute(String key,Object value)方法中需要传递2个参数,一个是键,一个是值,将键值映射到值上,随后就可以使用getAttribute(String key)来获取其中的值。
例子如下:index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>request对象简单实例</title> </head> <body> <h1>request对象简单实例</h1> <%request.setAttribute("hello","hello JSP hhhh"); %> <jsp:forward page="request.jsp"></jsp:forward> </body> </html>
request.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>request对象简单实例</title> </head> <body> <h1>request对象简单实例</h1> <%=request.getAttribute("hello")%> </body> </html>
结果为:
3、响应对象(response)
response对象主要是将JSP处理的数据结果返回给客户端,比如有时候想让网页自动刷新,就需要设置Header,如每10秒刷新一遍网页则可以用:
response.setHeader("Refresh","10;URL=index.jsp");
4、会话对象(session)
session对象表示目前个别用户的会话状况,用此机制可以轻易辨别每一个用户,然后可以根据用户的不同给出正确的响应。
例:index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>登录</title> </head> <body> <form action="voildate.jsp"> 用户名:<input type="text" name="name"/><br/><br/> 密 码:<input type="password" name="password"/><br/> <input type="submit" value="提交"/> <div id="error"><font color="red"> <% String message=(String)request.getAttribute("error"); if(null!=message) out.print(message); %></font> </div> </form> <br> </body> </html>
violdate.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>session 简单实例</title> </head> <body> <% String name=request.getParameter("name"); String password=request.getParameter("password"); if("zhulihui".equals(name)) { if("123456".equals("password")) { session.setAttribute("user",name); response.sendRedirect("message.jsp"); } else { request.setAttribute("error","密码错误"); request.getRequestDispatcher("index.jsp").forward(request,response); } } else{ request.setAttribute("error","用户名错误"); request.getRequestDispatcher("index.jsp").forward(request,response); } %> </body> </html>
message.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>session简单实例</title> </head> <% String name=(String)session.getAttribute("user"); if(null==name) request.getRequestDispatcher("index.jsp").forward(request,response); %> <body> <h1>成功登陆。</h1> </body> </html>
用户名错误或密码错误会提示响应的错误,都正确,则成功登陆。