java Bean 编程 笔记

12月4日
什么是Java Bean?
JavaBean是一种可重复使用,跨平台的软件组件.,JavaBean主要分为两种:
1 有用户界面:UI
2 无用户界面:主要负责处理事物(数据运算,操作数据库)
JSP使用的是第二种
JSP+Java Bean的特点:
1 可以让HTML与Java程序分离
2 降低开发JSP网页人员对Java编程能力的要求
3 JSP侧重与动态网页,事物处理由JavaBean完成
JavaBean特性:
1 JavaBean是一个公共的(public)类
2 JavaBean有一个无参的构造方法
3 JavaBean通过getxxx方法或setxxx方法交互
在JSP中声明JavaBean:
<jsp:useBean>标签来声明,示例:
<jsp:useBean id=”myBean” class=”package.MyB” scope=”page” />
id:代表对象的变量名
Class:代表类名
Scope::指定JavaBean对象范围,在指定的范围内如果对象不存在,则会创建这个JavaBean对象
MyB myBean = new MyB( );
新建项目 JavaBean
src/ 建package:com.firstbean.test/HelloWorld.java
WebContent/HelloWorld.jsp
src/Student.java
Student.jsp
student_do1.jsp
student_do2.jsp
JavaBean scope参数描述
Page:(默认值)客户每次请求jsp页面时,都会创建一个JavaBean对象
有效范围:当前jsp页面
结束生命周期条件:
1 客户请求访问当前jsp网页通过<forward>到其他页面
2 当用户请求当前jsp页面结束并且向客户端发出回应(每次请求页面都会生成新的对象)
request :客户每次请求页面访问JSP页面时,都会创建新的对象
有效范围:
1 当前jsp页面
2 与当前页面共享一个请求页面:如:include,forward
结束生命周期条件:
1 当用户请求当前jsp所有页面结束并且向客户端发出回应(每次请求页面都会生成新的对象)
session:客户每次请求访问JSP页面时,会在整个session的生存周期内
有效范围:
1 同一个Session中的JSP文件共享同一个Java Bean对象
结束生命周期条件5
1 当用户关闭浏览器
application:访问JSP在整个Web应用的生命周期内
有效范围:
1 Web中的所有JSP都可以共享同一个Java Bean对象
结束生命周期条件
1 当服务器关闭
javabean需要掌握的内容:
1 什么是Javabean
2 如何编写符合的Javabean
3 如何使用Javabean,三个标签
4 Javabean的自动赋值
5 <jsp:useBean scop=””> 的四个属性值,它们的生命周期
Java Web应用程序开发模式的进化:
1 jsp+ java
2 jsp+javabean(MVC model 1)
3 jsp + servlet + javabean(Mvc model2)
4 struts(MVC)
新建项目 JSPJavaBean
src/ com.student.db
com.student.dao
com.student.domain
com.student.util
WebContent/
Student.jsp
Student_do.jsp
练习:
使用JSP + Javabean + DAO + JNDI
实现用户的注册和登录功能
要求:注册的密码使用MD5进行加密码保存
细节:
1 验证的时候要使用密文对密文的方式进行比较
2 用户登录成功后显示呢称,不显示id
为什么需要MD5加密:
angel 123
MD5是一种加密算法特点:
同样的输入,具有同样的输出32个字节
它无法逆破解,只能穷举破解
12月10日
1 什么是Servlet
Java Servlet是与平台无关的服务器端组件,Servlet和客户的通信采用“请求(request)/响应(response)的模式
2 Servlet API的构成:
Servlet的框架的核心是java.servlet.Servlet接口,所有的Servlet都必须实现这一接口
3 Servlet的种类:
3.1 获得请求,响应客户端
3.2 Filter //过滤器
3.3 Listener //监听器
4 Servlet接口中的3个方法代表了Servlet的生命周期:
Init( ):
方法只会被调用一次
一般文件夹的打开,数据库的连接,复位计数器等可选的方法,可不写
若执行不成功,则抛出unavailableException异常
service( ):
是Servlet的核心,Servlet引擎调用该方法处理来自浏览器的请求
是事实上唯一需要实现的方法,不要覆盖这个方法!
init( )与service( )的区别:

destroy( ):
如何实现Servlet?
1 extends Http Servlets
2 配置web.xml
新建项目 FirstServlet
com.servlet
URLMappings:代表访问Servlet的路径
在继承HttpServlet中覆盖的方法:
1 doGet(HttpServletRequest request, HttpServletResponse response)
代表当这个Servlet得到客户端GET请求的时候,自动被调用的方法
2 doPost(HttpServletRequest request, HttpServletResponse response)
代表当这个Servlet得到客户端POST请求的时候,自动被调用的方法
体验Servlet的生命周期:
Servletlife
练习:
ServletTable功能为打印一个表格
体验:使用Servlet进行HTML的编写过于复杂,所以Servlet替代JSP不可能的
练习:
使Servlet接受表单数据
src/ServletForm.java(servlet)
webContent/ FormLogin.jsp
success.jsp
error.jsp
体验:使用Servlet可以方便的接收客户端的请求,可以顺利的将纯Java代码从JSP中分离出来
通过两个练习,体验到Servlet在实际开发中,主要承担着
1接收用户消息
2判断用户(使用javabean)
3 路径跳转
问题:
在Servlet中进行服务器端跳转无法实现?
这样Servlet中传递的参数无法使其他页面准确获得
解决:
javax.servlet.RequestDispatcher //接口实现服务器跳转相当于<jsp:forward />
固定的使用方法:
RequestDispatcher rd = request.getRequestDispatcher(“XXX.jsp”);
Rd.forward(request, response);
JSP和Servlet的选择:
JSP的优点和缺点:
优点:易学,编写容易
缺点:Java代码与HTML代码混合
Servlet的优点和缺点:
优点:是Java类,不存在代码混合
缺点:配置维护麻烦
今天的目标:
1 Servlet的重要接口javax.servlet.Servlet
2 Servlet的生命周期方法
3 init( )和service( )方法的区别
4 Servlet的种类
5 Servlet的编写方式
6 Servlet数据接收
7 Servlet与JSP的特点
8 Servlet实现服务器跳转
12月11日
Servlet 过滤器
什么是Servlet过滤器?
Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改
Servlet过滤器特点:
1 检查和修改ServletRequest和ServletResponse对象
2 可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器
3 可以被串联在一起,形成管道效应,协同修改请求和响应对象
如何实现Servlet过滤器?
所有的Servlet过滤器类都必须实现javax.servlet.Filter接口,这个接口含有3个过滤器类必须实现的方法:
1 init(FilterConfig):
这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中的Servlet过滤器的初始化参数
2 doFilter(ServletRequest, ServletResponse,FileterChain):
这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器
3 destroy( ):
Servlet容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源
新建项目 ServletFilter
体验:Servlet Filter
让Filter进行字符编码的转换
src/Login_do.java //servlet
EncoderFilter.java
URL:: /* //对当前网站下所有的消息进行过滤
WebContent/Login.jsp
字符串过滤器
src/StringFilter.java
WebContent/Login.jsp
新建StringFilter.java时,到点Add按扭添加禁语英文加中文
细节:使用eclipse EE进行servlet删除操作的时候,需要到web.xml手工删除对应的配置标签
练习:
实现一个登录验证过滤器,当用户访问admin/目录的时候,过滤器启动,检测有没有合法的session,如果有就服务器跳转到success.jsp,如果没有就客户端跳转login.jsp
项目 LoginFiter
src/EncoderFilter.java
LoginFilter.java
Login_do.java
WebContent/login.jsp
admin/success.jsp
admin.jsp
今天的目标:
1 过滤器的作用
2 EncoderFilter.java
3 StringFilter.java
4 LoginFilter.java
12月12日
application对象对应于javax.servlet.ServletContext接口
新建项目 ServletListener
ServletContext.java //Listener
ListerTest.jsp
Sevlet Listener:
可以监听application, session, request在页面中的变化
applicatin的监听器为:
ServletContextListener //生命周期
ServletContextAttributeListener //属性
练习:
监听Session的属性的添加,删除,替换
SessionListenerTest.java
SessionListenerTest.jsp
Session的监听器为:
HttpSessionListener //生命周期
HttpSessionAttributeListener //属性
Request监听器为:
ServletRequestListener //生命周期
ServletRequestAttributeListener //属性
实现监听器的步骤:
1 当前的servlet必须继承并且对应的监听接口
2 配置web.xml
<listener>
<listener-class>ServletContext.ServletContext
</listener-class>
</listener>
servlet总结:
实际上servlet就是通过用户请求的地址(URL),再由服务器映射到对应的java程序中的一种Web技术
Servlet有三种类型:
1 普通的Servlet extends HttpServlet:
它的作用就是接收用户请求,判断用户请求
2 Filter过滤器
3 Listener监听
2 MVC Web开发模式:
模型(M)---视图(V)---控制器(C) (Model-View_Ocntroller)
它是为那些需要为同样的数据提供多个视图的应用程序而设计的,它很好地实现了数据层与表示层的分离,特别适用于开发与用户UI有关的应用程序
MVC简介:
控制器:用来处理用户命令以及程序事件(servlet)
模型:维护数据并提供数据访问方法(dao)
视图:数据的显示/(jsp)
MVC(jsp servlet..)设计特点:
1 适合团队开发,分工明确
2 便于日后维护
3 配置及设计相对jsp+ javabean复杂
练习:目标掌握jsp+servlet+javabean
MVC的Web开发模式
功能实现对Student表的增,删,改,查
实现登录,注册
三个模块:
1 登录
2 注册
3 Student的操作
分析:
1 根据需求搜集数据,建立数据库
create database mvcdeom;
create student;
create user;
2 分析模块的实现:
2.1 登录
2.2 注册
WebContent/xxx.jsp
Src/com.student.servlet;
xxx_do.java
访问javabean---访问数据库
2.3 Student的操作
控制器的原则:servlet
1 接收用户请求(错误判断)
2 访问java bean
3 判断 javabean的返回值
4 发送请求给客户端(页面跳转)
package com.student.domain; 映射类
User.java
package com.student.dao; DAO设计模式实现
IUserDAO.java
UserDAOImpl.java
UserDAOFactory.java
package com.student.db; JNDI连接池
MyDBConnection.java
package com.student.util;
UserUtil.java 关闭数据库连接
EncoderFilter.java 字符编码过滤器
LoginFilter.java 登录验证过滤器
package com.student.servlet; 控制器实现
package com.student.test; 测试
TestUserDAO.java
新建项目:MVCDemo
M都在src/
V在WebContent/
admin/success.jsp
login.jsp
C在src/com.student.servlet
新建servlet--à login_do.java
12月13日
MVC设计方式:
V------要将View中的Java代码分离出来
昨天MVC练习中的细节:
1 browse.jsp没有实现java和html的分离
解决:SUN提供了EL(表达式语言)
JSTL(JSP标准标签库)
2 在Web程序开发中,程序本身尽量不依赖数据库id自增值
解决:通过系统毫秒生成MD5存入数据库的ID字段
3 缺少事物处理机制
如果是:MySQL需要InnoDB
解决:con.setAutoCommit(false); //SQL
comm..commit();
catch(SQLException e){
conn.rollback();
}
MVC编写过程:
1 使用DAO+ Factory编写M
M的职能:操作数据库
2 到test包对M进行尽可能完善的测试
3 到WebContent编写JSP V
V的职能:得到数据,显示数据
4 到com.xxx.servlet包编写 C
C的职能:得到数据,判断数据,调用M 发送数据给V
Expression Language(表达式语言)
EL主要功能:
访问存储对象
对JavaBean的简化访问
对集合的简化访问
简单运算符
条件输出
EL基础语法:${expression}
在JSP中禁用计算,以忽略JSP中EL表达式的执行
禁用EL,计算的语法为:
<%@ page isELIgnored=”true | false” %>
新建项目:ELTest
ELTest.jsp
form.jsp
EL的默认取值范围:
pageScope
requestScope
sessionScope
applicationScope
//称为EL的隐含对象
param.
遍历list:
注:EL没有遍历功能
需要JSTL
配置JSTL:
在tagplugin文件夹中
jstl.jar
standard.jar
使用JSTL的步骤:
1配置JSTL:
在tagplugin文件夹中
jstl.jar
standard.jar
2 在jsp页面中使用
<% @taglib %>
//导入标签库
注意重要的字段为:prefix = “c”
prefix为标签库的标识
3 使用标识:
<c:forEach>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值