zoukankan      html  css  js  c++  java
  • 9.Java web—JSP内置对象

    容器内置了9大对象,这些对象在jsp页无需实例化,可以直接使用。

    分别为request、 response 、session、 application 、out、 pageContext 、config 、page、 exception

    1)request对象

    request封装了由客户端请求的http所有细节,包括HTTP头信息,系统信息,请求方式,请求参数

    request.getParameter("参数name");  //获取请求的url参数。不存在此参数返回null,存在参数但没有值返回””。

    在作用域管理属性:

    当使用<jsp:forward>请求转发时,可为后面的页面传参数。

    request.setAttribute(String name,Object obj);//当前页写入值

    request.getAtrribute(String name);//目标页获取到值 ,值为Object,需要转换;有可能name不存在,最好需要判断一下

    cookie读与取

    java里面不能通过已知cookie名称直接获取其值,要循环所有cookies来判断方式获取

    //写入cooke,如果有中文,要使用URLEncoder.encode()编码
     Cookie ck=new Cookie("UserInfo", URLEncoder.encode("我是值","utf-8")); 
     ck.setMaxAge(60*60*24*30);//有效期为30天 
     response.addCookie(ck);//给客户端写cookie

    取cookie

     String result="";
    		Cookie[] cks = request.getCookies();
    		if (cks != null) {
    			for (Cookie ck : cks) {
    				//有中文要使用URLDecoder.decode()来解码
    				result+="名称:"+ck.getName()+"  值为:" + URLDecoder.decode(ck.getValue(),"utf-8");
    			}
    		}

    其他请求

    <body>
    	<br />客户提交信息的方式equest.getMethod():<%=request.getMethod()%>
    	<br />使用的协议request.getProtocol():<%=request.getProtocol()%>
    	<br />获取发出请求字符串的客户端地址request.getRequestURI():<%=request.getRequestURI()%>
    	<br />获取发出请求字符串的客户端地址request.getRequestURL():<%=request.getRequestURL()%>
    	<br />获取提交数据的客户端IP地址request.getRemoteAddr():<%=request.getRemoteAddr()%>
    	<br />获取服务器端口号request.getServerPort():<%=request.getServerPort()%>
    	<br />获取服务器名称request.getServerName():<%=request.getServerName()%>
    	<br />获取客户端主机名request.getRemoteHost():<%=request.getRemoteHost()%>
    	<br />获取客户端所请求的脚本文件的文件路径request.getServletPath():<%=request.getServletPath()%>
    	<br />获取Http协议定义的文件头信息HOST值request.getHeader("host"):<%=request.getHeader("host")%>
    	<br />获取Http协议定义的文件头信息User-Agent值request.getHeader("user-agent"):<%=request.getHeader("user-agent")%>
    	<br />获取Http协议定义的文件头信息accept-language值request.getHeader("accept-language"):<%=request.getHeader("accept-language")%>
    	<br />获取请求文件的绝对路径request.getRealPath("index.jsp"):<%=request.getRealPath("index.jsp")%>
    </body>

    结果为:

    客户提交信息的方式equest.getMethod():GET
    使用的协议request.getProtocol():HTTP/1.1
    获取发出请求字符串的客户端地址request.getRequestURI():/crm/index.jsp
    获取发出请求字符串的客户端地址request.getRequestURL():http://localhost:8080/crm/index.jsp
    获取提交数据的客户端IP地址request.getRemoteAddr():0:0:0:0:0:0:0:1
    获取服务器端口号request.getServerPort():8080
    获取服务器名称request.getServerName():localhost
    获取客户端主机名request.getRemoteHost():0:0:0:0:0:0:0:1
    获取客户端所请求的脚本文件的文件路径request.getServletPath():/index.jsp
    获取Http协议定义的文件头信息HOST值request.getHeader("host"):localhost:8080
    获取Http协议定义的文件头信息User-Agent值request.getHeader("user-agent"):Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
    获取Http协议定义的文件头信息accept-language值request.getHeader("accept-language"):zh-CN,zh;q=0.9
    获取请求文件的绝对路径request.getRealPath("index.jsp"):E:studyjava.metadata.pluginsorg.eclipse.wst.server.core mp0wtpwebappscrmindex.jsp

     

    获取客户的国际化信息:

    Locale locale=request.getLocale();
    if(locale.equals(Locale.CHINA)){
    	//当前客户端环境为中文
    }

     

    2)response对象

    //跳转
      response.sendRedirect("http://www.baidu.com");
    //设置header
    response.setHeader("cache-control", "no-store");
    response.setDateHeader("Expires", 0);
    response.setHeader("refresh", "5");
    //设置缓冲区大小,8的倍数
    response.setBufferSize(32);
    //强制缓冲区内容输出到客户端
    response.flushBuffer();
    //获取缓冲区大小
    response.getBufferSize();
    //缓冲区内容是否已发送完成
    response.isCommitted();

     

    3)session对象

     //设置session,值为object
     session.setAttribute("name", "guocheng");
     //获取session值,值为 object,要转换
     session.getAttribute("name");
     //获取session最近一次访问时间
     session.getLastAccessedTime();
     //移除某个session
     session.removeAttribute("name");
     //获取超时时间
     session.getMaxInactiveInterval();
     //设置超时时间,秒为单位
     session.setMaxInactiveInterval(10);
     //销毁session,之后所有session操作都报错,谨慎用
     session.invalidate();

     

    4)application对象

    应用的全局参数,在WEB-INFweb.xml中的<context-param>标记中配置 。修改web.xml的内容需要重启应用才能生效

    <context-param>
    		<param-name>name</param-name>
    		<param-value>陈小东</param-value>
    	</context-param>

    读取方法:

    //获取方式
    	    application.getInitParameter("已知名称");
    	   //列出所有参数名称
    		Enumeration es = application.getInitParameterNames();
    		while (es.hasMoreElements()) {
    			String name = (String) es.nextElement();
    			String v = application.getInitParameter(name);
    			out.print(name + ":" + v);
    		}

    类似session,出可以程序运行中为application添加属性及值

    application.setAttribute("gg", "值");
    		String s = (String) application.getAttribute("gg");

    5)out对象

    可以在页面输入内容,清空缓冲区等

    out.clear();

    6)pageContext对象

    当前页面的上下文,仅为当前页面级别.

    //定向到本站其页面,而非外站
    	pageContext.forward("p1.jsp");
    	//同样可以为上下文内添加属性
    	pageContext.setAttribute("name", "234");
    	pageContext.getAttribute("name");
    	pageContext.removeAttribute("name");
    	//与request对象一致
    	pageContext.getRequest();
    	pageContext.getResponse();
    	pageContext.getSession();
    	pageContext.getOut();

     

    7)config对象

    获取服务器的一些信息

    //servlet上下文
        config.getServletContext();
    	//当前servlet名称
    	config.getServletName();//等于jsp
    	//web.xml全局参数
    	config.getInitParameter(name);
    	config.getInitParameterNames();

    8)page对象

    page代表的就是jsp的本身,可以用this做别名。一个jsp页实质上就是一个servlet类。

    page.getClass();//如等于org.apache.jsp.index_jsp

    page.hashCode();

    9)exception对象

    当一个页使用使用<%@page errorPage=”error.jsp” %>,当本页报异常时会转向到error.jsp页

    在error.jsp页可直接使用<%=exception.getMessage()%>显示错误信息

    error.jsp要<%@page isErrorPage=”true”%>

  • 相关阅读:
    打印机共享为什么老是出现“操作无法完成(错误 0X00000709)。再次检查打印机名称、并确保打印机连接网络
    给UITextField设置头或尾空白
    Objective-C中的关联(objc_setAssociatedObject,objc_getAssociatedObject,objc_removeAssociatedObjects)
    定时器在多线程中的使用
    block知识点
    UIViewController新方法的使用(transitionFromViewController:toViewController:duration:options:animations:completion:)
    NSMutableAttributedString 的使用方法,设置格式
    statusbar的颜色设置
    获取图片的缩略图
    彻底理解position与anchorPoint
  • 原文地址:https://www.cnblogs.com/evemen/p/9827398.html
Copyright © 2011-2022 走看看