jsp内置对象小结

jsp的9大内置对象:

  1. 内置对象名          类型  
  2. request        HttpServletRequest  
  3. response       HttpServletResponse  
  4. config         ServletConfig  
  5. application    ServletContext  
  6. session        HttpSession  
  7. exception      Throwable  
  8. page           Object(this)  
  9. out            JspWriter  
  10. pageContext    PageContext 

下面介绍常用的四大内置对象

1.request对象

表单提交:

<form action=" .jsp/.java" method="get">

action:提交到处理页面.jsp或者直接提交到.java程序做处理

method: post/get

post/get:

  • get
  • post

</form>


中文乱码:

  • get 提交表单:
        (治标)username=new String(username.getBytes("iso-8859-1"),"utf-8");

        (治本)tomcat\conf\server.xml: Connector标签下 URIEncoding="UTF-8";useBodyEncodingForURI="true"


  • post提交表单:request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");

转发、重定向

  • 转发:request.getRequestDispatcher(url).forward(request,response);
  • 重定向:response.sendRedirect(url);

2.session

一次会话就是浏览器和服务器的一次交互;不同浏览器,对应不同会话;关闭浏览器,会话结束

会话清除(程序主动清除):

  • session.invalidate()
  • session.removeAttribute(属性名)(建议使用

会话过期:

  • setMaxInactiveInterval(int interval);以为单位,设置session的最大活动时间
  • 在tomcat服务器的web.xml文件中<web-app>标签之间添加<session-config><session-timeout>10</session-timeout></session-config>以为单位
对比:cookie以文本方式保存数据,需要手动创建不是jsp内置对象
  • 添加 public void addCookie(Cookie cookie):
  • 获取 public Cookie[] getCookies()
  • 设置有效期: setMaxAge()单位秒
示例:
  1. Cookie cookie=new Cookie("username",userName)
  2. response.addCookie(cookie)
  3.  Cookie[] cookies=request.getCookies()
  4. if(cookies!=null){
  5. for(Cookie ck: cookies){
  6. if(ck!=null&&ck.getName().equals("admin")){
  7. response.sendRedirect(url);}}
  8. }

注意:

  • 在读取Cookie时,为确保页面运行不会出现异常,建议在循环Cookies数组时先对数组进行非空判断,以免空指针异常
  • 使用setMaxAge(int expiry):1)通常情况下expiry参数为大于0的整数,表示Cookie的有效时间。2)如果设置expiry参数为0,表示删除Cookie。3)设置expiry参数为-1或者不设置,表示Cookie会在当前窗口关闭后失效。
  • 若使用cookie存取数据,在不同路径下页面传递数据,需要设置路径:cookie.setPath("/");指cookie对整个工程可见,若不设置,cookie只被当前文件夹下(同路径)的页面可见,其他页面读取的值仍然为之前存的值,不会被覆盖。

Cookie与session比较

  • session是服务器保存用户信息,Cookie是客户端保存用户信息
  • session保存的时对象,Cookie中保存的时字符串
  • session随对话结束而失效,Cookie则可以长期保存在客户端
  • Cookie通常保存不重要的用户信息,重要信息使用session保存

3.application

application对象类似于系统的“全局变量”,每个Web项目都有一个application对象,可以在整个Web项目共享使用数据。application对象的常用方法:

方法返回值类型说明
setAttribute(String key,Object value)void以key-value的形式保存对象值
getAtrribute(String key)Object通过key获取对象值

示例:统计网站的访问人数

<%

object count=application.getAttribute("count");

if(count==null){       //application中为存放count

application.setAttribute("count",new Integer(1));

}else{

Integer i=(Integer)count;

application.setAttribute("count",i.intValue()+1);

}

Integer icount=(Integer)application.getAttribute("count");

out.println("页面被访问了"+icount.intValue()+"次");

%>

4.page作用域与pageContext对象

page作用域指单一JSP的范围,page作用域内的数据只能在本页面中访问

在page作用域内可以使用pageContext对象的setAttribute()和getAttribute()方法来访问具有这种作用域类型的数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值