javaWeb08

本文介绍了如何在JSP中实现简单版的历史浏览记录功能,利用Cookie读取并显示用户的浏览历史。同时,详细讲解了JSP内置对象application在服务内的数据共享,以实现网页访问计数器。最后,讨论了JavaBean在封装数据和业务逻辑上的优势,并展示了如何在JSP页面中使用JavaBean进行操作。
摘要由CSDN通过智能技术生成

一、制作简单版的历史浏览记录

 

<h2>浏览记录</h2>

<%

//从Cookie中取出所有的value值打印

Cookie[] css=request.getCookies();

if(css!=null){

//循环遍历

for(Cookie c:css){//c.getName():nid

//如果不是sessionID并且也不是当前用户的就打印

if(!c.getValue().equals(session.getId())&&!"sname".equals(c.getName())){

out.print("<a href='/web5/news/read.jsp?nid="+c.getName()+"&tt=1'>"+URLDecoder.decode(c.getValue(),"utf-8")+"</a><br/>");//解码

}

}

}

 

%>

二、内置对象application:

application类似于系统的“全局变量”,用于实现用户之间的数据共享 application对象的常用方法:

void setAttribute(String key, Object value):

以键/值的方式,将一个对象的值存放到application中:application.setAttribute("LOGINED_USER", new ArrayList());

Object getAttribute(String key):根据键去获取application中存放对象的值。

application是JSP内置对象 实现服务内数据的共享 在服务内值存在一个对象实例 application对象的常用方法:

类型

方法名称

说  明

void

setAttribute(String key,Object value)

以key/value的形式保存对象值

Object

getAttribute(String key)

通过key获取对象值 

String

getRealPath(String path)

返回相对路径的真实路径

 

这几可以做一个 统计网页访问次数 业务处理页面 设置网页访问计数器初始值 使用application保存计数器 页面加载时首先取出application中原始计数器的值 在原始计数器值基础上执行+1操作,然后在保存到application中。

 

<%

//application的作用域:在服务器打开和关闭 之间有效

//应该先拿值

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

if(count!=null){//拿到了 说明以前有人访问过

count++;//在原来的访问量上递增1

}

else{

count=1;

}

//int count=0;

count++;

application.setAttribute("count", count);//存值 键,值

%>您是第<%=application.getAttribute("count") %>位访问该网站的用户!

%>

三、JavaBean封装

JavaBean的优势:

解决代码重复编写,减少代码冗余;

功能区分明确,避免业务逻辑处理与页面显示处理集中在一起造成混乱;

提高了代码的维护性。

符合规范的Java类都是JavaBean

JavaBean的分类

封装数据 :按照OO原则,属性与数据库表字段相对应 属性私有 具有public的set/get方法

public class Comment {            

 private String cid;           // 用户名      

   private String ccontent;    // 电话        

 public Comment () {  

 }    

   public void setCid(String cid) {            

     this. cid= cid;  

     }      

 public String getCid() {          

      return cid;    

   }      

 …//其它属性的setter、getter方法 }

 封装业务: 具有实现特定功能的方法和方法实现 通常与一个封装数据的JavaBean对应

public class CommentControl { public int getMaxId() {      

   int result = 0;      

   try {      

        Connection  con = ConnectionManager.getConnction();    

          String strSql = "select max(cid) from comment ";          

    PreparedStatement pStatement = con.prepareStatement(strSql);      

        ResultSet rs = pStatement.executeUpdate();      

        if(rs.next()){      

             result = rs.getInt(1)+1;    

          }      

     } catch (SQLException sqlE) {   sqlE.printStackTrace();  

   }      

     return result;  

      }

}

 在JSP页面中导入JavaBean

//引入JavaBean

<%@ page import="org.jbit.news.bean.*" %>

//使用JavaBean

<%     Comment c = new Comment();  

  c.setCid(1014);  

  c.getCauthor();

%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值