jsp内置对象的使用

request对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(请求对象)

<form action="request.jsp" method="post">
        <table>
            <tr>
                <td>username:</td>
                <td><input type="text" name="username" value=""></td>
            </tr>
            <tr>
                <td>hobby:</td>
                <td><input type="checkbox" name="favor" value="basket">basketball</td>
                <td><input type="checkbox" name="favor" value="football">football</td>
                <td><input type="checkbox" name="favor" value="eat">eatting</td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="SubMit">
                </td>
            </tr>
        </table>
    </form>
//request.jsp 
<%--request处理中文乱码问题 --%> <% request.setCharacterEncoding("utf-8");//解决字符乱码问题,对post有效 request.setAttribute("password", "admin");//保存一些属性的值 %> <%--request获取form表单的信息 --%> username:<%=request.getParameter("username") %><br/> hobby:<% if(request.getParameterValues("favor")!=null) { String []hobby=request.getParameterValues("favor"); for(String s:hobby) { out.println(s); } } %> password:<%=request.getAttribute("password") %><br/> <hr/> <%--request获得客户端的一些信息 --%> 获得请求的页面类型:<%=request.getContentType() %><br/> 获得请求的协议版本:<%=request.getProtocol() %><br/> 获得请求的服务器名字:<%=request.getServerName() %><br/> 获得请求的服务器端口号:<%=request.getServerPort() %><br/> 获得客户端ip地址: <%=request.getRemoteAddr() %><br/>

 response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。(响应对象)

    <%
PrintWriter outer= response.getWriter();
outer.println("hello"); //response的getWriter()输出优先级高于内置的out
out.println("world");
    %>
    

response.sendRedirect("request.jsp");//请求重定向,执行该操作后,request中的属性全部失效

session对象
1.什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
2.session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。

 

<body>
    session1 //说明同一会话,创建时间相同
    session的创建时间<%=session.getCreationTime() %>
     session id<%=session.getId() %> //同一会话的id相同
    <a href="session2.jsp"></a>

</body>
 <body>
  session2
  session的创建时间<%=session.getCreationTime() %>
  session id<%=session.getId() %>
 //说明同一会话,创建时间相同
  </body>
<%
	session.setAttribute("name", "jack");//保存对象的值 
	 %>
name: <%=session.getAttribute("name") %>

 

 <%
     session.setAttribute("name", "jack");//保存对象的值 
     session.setAttribute("age", "23");//保存对象的值 
     session.setAttribute("city", "beijing");//保存对象的值 
      %>
获得保存session对象的集合<%
   String[]a= session.getValueNames();
   for(String str:a)
   {
     out.println(str);
   }

 %>

 application对象的使用

<%
        application.setAttribute("name", "jack");
        application.setAttribute("isLogin", true);
    %>
    city:<%=application.getAttribute("name")%>
    isLogin:<%=application.getAttribute("isLogin")%>
    version:<%=application.getServerInfo()%>
    all of the application attribution:
    <%  
    Enumeration e= application.getAttributeNames();
    while(e.hasMoreElements())
    {
      out.println(e.nextElement());
    } 
    
    %>

application实现统计网站浏览次数

<% 
 int number=0;
 if(application.getAttribute("counter")==null)
 {
   application.setAttribute("counter", 1);
 }
 else
 {
  number=Integer.parseInt(application.getAttribute("counter").toString());
  number++;
  application.setAttribute("counter", number);
 }
 number=Integer.parseInt(application.getAttribute("counter").toString());
%>
you are the <%=number %>   user 
//PageContext
you are the <%=number %> user age is<%=pageContext.getSession().getAttribute("age") %> <% pageContext.forward("index.jsp") ;//跳转到index.jsp页面 %> <% pageContext.include("index.jsp"); %>

 

posted @ 2015-01-25 15:32  BigShui  阅读(225)  评论(0编辑  收藏  举报