JSP慕课笔记——第六章

JavaBean

  • JavaBean是一种Java语言写成的可重用组件
  • JavaBean是一种特殊的Java类
  • 他的结构与普通的Java类相似,编写JavaBean就是编写Java类
  • 由JavaBean类创建的对象称为JavaBean,简称bean
    JavaBean的特点
  • JavaBean的类:具体的,公开的,类中如果有构造方法,则构造方法是public的(无参的)
  • 类中的属性是private的,访问属性的方法都必须是public的
  • getXXX和setXXX是它的常用方法,并不一定成对出现
  • 对于Boolean变量,可以使用is代替get
  • JavaBean处理表单方便,采用" /jsp:useBean/"标签可以直接得到表单提交的数据

封装数据的JavaBean
通过编写一个规范的JavaBean类来使用JavaBean,即按照数据表的每一项设置属性名,然后可以在网页中直接设置值与直接使用它。
封装业务的JavaBean
完成一定运输和操作功能的业务类,主要包含一些特定的方法,进行业务处理

  • 实现数据库连接的JavaBean
  • 对图书表titles操作的业务JavaBean
    即将连接数据库的操作封装在一个标准的Java class文件中,然后调用这个JavaBean,直接使用该类的连接数据库方法

封装业务的JavaBean实例,实现对图书表title的操作
CRUD操作:将数据项封装在JavaBean中,数据表要封装在DAO(data access object)接口类,声明要实现的方法,实现CRUD等操作。
在设计业务类JavaBean时,先设计操作业务接口titleDao,再实现此业务接口完成操作类titleDaoLmpl的设计。

在jsp中使用JavaBean

  • JavaBean可以实现代码的复用,可重用性,可维护性

  • 将一些常用的,复杂功能抽象出来,组织为JavaBean

  • 需求修改时,只要修改该JavaBean的页面实现良好的可维护性

     <jsp:useBean="name" class="classname" scope="page|request|session|application"/>
     动作用在于JSp页面中实例化一个或多个JavaBean组件,在JSP页面中被调用
     <jsp:setProperty> 设置JavaBean的值
     <jsp:getProperty> 获取JavaBean的值
     <jsp:setProperty name="title" propety="title" value="one">通过这个设置修改JavaBean的属性
     <jsp:setProperty name="name" propety="title">通过get获取参数的如果		
    
     将JavaBean属性的名字和提交表单属性的名字一致,即可使用通配符一次性,名字一致即自动获取表单参数
     <jsp:setProperty name="title" propety="*">
     ---->表单传递非常方便,不然要通过param来一项一项获取。------<
    

servlet基础知识

  • servlet是遵循Java Servlet规范的类,是在web服务器端的符合“请求-响应”访问模式的应用程序

  • 可以接收来自web浏览器或者其他HTTP客户程序的请求,并将响应的结果返回给客户端

  • servlet通常用于在服务器访问数据库,调用JavaBean等业务性的操作

  • JSP是在Java Servlet的基础上
    层级关系:java.lang.Object>java.servlet.GenericServelt>javax.servlet.http.HttpServlet>orj.apache.jasper.runtime.HttpJspBase
    Jsp程序转换的servlet,都是HttpJspBase类的子类

     -servlet就是一个Java类,与一般的Java类不同的是,它具有web服务器的功能
     -servlet程序中使用printWriter对象out拼写出完整的HTML文件,作为客户端请求的回应
     -完善doGet()和doPost()方法,重写方法完成自己的逻辑
     -jsp就是编译成一个servlet来处理请求的
     -一般只要重写其中一个方法
    

servlet与JSP的比较

  • servlet是利用输出HTML语句来实现动态网页的,如果用servlet来开发整个网站,动态页面与静态页面的整合非常难以实现
  • servlet是纯Java语言,擅长处理流程和业务逻辑。缺点是生成的网页不直观
  • JSP擅长网页制作,生成动态页面,比较直观

生命周期

  • servlet的生命周期从服务器启动到服务器停止。
  • servlet从被web.xml中解析到完成初始化,这个过程非常复杂。
  • 接受到客户端请求时,web服务器会调用service(type request,type respond)方法,request,response对象由服务器创建,并且传给servlet实例
  • request对象封装了客户端发送的请求,response封装了服务器发送客户端的信息
  • servlet服务于多线程的环境上

servletAPI的层次结构
servletAPI包含在两个包中,javax.servlet和javax.servlet.http

  • HttpServle类是servlet容器中最重要的一个类,其主要功能是处理servlet请求和回应处理结果

  • HttpServletRequest接口继承来自ServletRequest籍人口,该接口定义了一些获取请求的方法

  • HttpServletResponse接口继承来自ServletResponse接口,可以发送MIME编码到客户端数据,服务器会创建ServletResponse接口对象,作为参数传给Service()方法

  • ServletContext接口每个Web应用只有一个ServletContext实例(servlet的环境对象)通过此接口实例可以访问Web应用的资源,可以拿到服务器的物理地址,也可以用于不同的Servlet的数据共享

     jsp获取服务器上的项目相对路径和绝对路径
     request.getContextPath(),然后进行拼接
     getServletContext().getRealPath()
     项目的物理地址位置--对应服务器的根路径。
    

使用servlet实现验证码功能

  • 使用Java的内存图像对象bufferImage,用Java绘制一个验证码
  • 然后利用session缓存字符串的值,将内存图像输出到浏览器中
  • 检验的时候request.Getsession().getAttribute()获取缓存在session中的验证码,request.GetParameter()获取表单数据。

利用servlet实现上传,下载文件功能

	使用文件上传的Java类,然后自己配置上传的路径,然后从request请求保存到服务器中
	使用文件的servlet类来完成下载,当下载请求提交时,将请求提交给servlet类处理

Ajax与servlet

  • 创建一个XMLHttpRequest对象
  • 创建一个新的Http请求
  • 设置响应函数
  • 发送Http请求
  • 获取异步调用的函数,设置状态改变的函数,在返回成功后调用执行
  • Javascript和Dom刷新

实例-网上书店项目设计架构

  • 表示层JSP

  • 业务逻辑层Servlet

  • 数据访问层Dao
    设计思路清晰,条例分明,开发工作更加便捷,高效,降低层间耦合,易于维护。

     规划:
      - 图书信息采用封装数据的Javabean存储
      - 数据库的连接由封装连接业务的JavaBean实现
      - 对于图书表的增删改查等底层数据库操作则采用JavaBean实现
      - 业务逻辑底层的各种操作由相应的servlet实现
      - 用户应用需求由Jsp实现
    

Java开发的两种模式:

  • JSP+JavaBean:JSP直接处理Web浏览器发送的请求,并且辅用JavaBean处理相应的业务逻辑
  • MVC是设计模式Model-View-Control即模型视图控制 模式的一种实现。原理–>所有的请求都被发送给作为控制器的servlet,同时Servlet还根据接受Jsp的需求生成相应的Javabean对象并传输给JSP,JSP通过直接调用方法或利用use Bean的自定义标签得到JavaBean中的数据。

比较老牌的MVC框架有struts、webwork;新兴的有Spring Mvc,TapeStry,Jsf等,这些框架都提供了良好的层次分隔能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值