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等,这些框架都提供了良好的层次分隔能力。