`
majm
  • 浏览: 35765 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java/servlet/JavaBean

阅读更多
Java EE 概述
Javaa EE:分布式 企业级应用规范和标准

推模式:不用请求,强制让客户接受
拉模式:让客户请求和响应。

架构:
轻量级:struct2 /spring /hibernate
Modle1:jsp+JavaBean+DB
Model2(MVC):jsp+servlet+JavaBean+DB

重量级:Jsp+servlet+EJB+DB

表示层:业务层:持久层:数据库:

JNDI:查找分布对象的机制,明命目录服务。
DataSouce:EJB:JMS队列。

Session:用于判断或区分是否是同一个用户的请求
Web Service:将自我分协议交给外部调用。
B/S:优点:维护性高,运行效率不高,页面不美观。

接受客户段请求的数据:request.getprameter();
Request.getprameterValues();
Request.Head();
Request.cooket();

计算机间的数据传输方式(协议):http,Ftp,Udp。

Servlet基础
容器
用来容纳组件,管理对象的生命周期
Servlet的生命周期
加载和实例化
用户请求时servlet容器负责加载和实例化servlet,首先在容器中查找,如果存在则取出,
不存在则创建servlet实例。
初始化init()
当容器加载好servlet实例后,初始化servlet时,可设置连接参数,或对其他资源的引用。
服务service()
Servlet初始化后,就处于相应请求的就绪状态。请求对象以参数的形式传给service()方法,由它来判断处理请求的方式。0
销毁destroy()
Servlet的实例是由servlet容器创建的,由容器来判断一个servlet被释放时,Destory()方法来指明那些方法可以被系统回收

实例变量在service()方法中声明。
本地变量在处理方法中声明;

Servlet在服务器运行之前启用
<load-on-startup>1</load-on-startup>
Servlet容器 何时装载Servlet
1. 判断部署描述符中有没有<load-on-startup>
2. 当用户请求时servlet才装载;
通过jsp文件来充当servlet
  <servlet-name>loginjsp</servlet-name>
  <jsp-file>login.jsp</jsp-file>
  <servlet-name>loginjsp</servlet-name>
  <url-pattern>jsp文件的绝对路径</url-pattern>

添加
Http:是应用层协议,使用下层的tcp/ip转换层来完成
Url:统一资源标识符,拥于指定和构成web资源的字符窜的各个不同的部分。

ServletContext对象是个web服务器中的一个已知路径的根。
Servlet上下文被订位为http://loclhost:8080//project
Project请求路径(成为上下文的根)

可通过servletConfig对象getServletConfing()方法,来得到ServletContext对象。

Servlet getConfig(String url)
url:给出url相对应ServletContext对象的集合。

ServletContext保存的属性可在多个客户端之间共享属性。

开发线程安全的Servlet:
Public synchronized void doGet(request,response);
Public synchronized void doPost(request,response);

项目部署时自动创建数据库的CreateDBServlet
executeUpdate(“create database”);
executeUpdate(“create table”)
………….

Web.xml中:
  <servlet>
  <servlet-name>CreateDBServlet</servlet-name>
  <servlet-class>org.majm.dao.CrateDBServlet</servlet-class>
  <init-param>
  <param-name>driverClass</param-name>
<param-value>com.microsoft.sqlserver.jdbc.SQLServerDriver</param-value>
  </init-param>
  <init-param>
  <param-name>url</param-name>
  <param-value></param-value>
  </init-param>
  <init-param>
  <param-name>user</param-name>
  <param-value></param-value>
  </init-param>
  <init-param>
  <param-name>pwd</param-name>
  <param-value></param-value>
  </init-param>
  </servlet>
 
  <servlet-mapping>
  <servlet-name>CreateDBServlet</servlet-name>
  <url-pattern></url-pattern>
  </servlet-mapping>

Servlet 的异常出理机制
为了向客户端显示非常有好的错误提示。
Servlet 中有两种服务器端的异常处理机制。
1. 声明式异常处理:
2. 程序式异常处理:

Servlet过滤器的用途:
•用户认证与授权管理
•统计web应用的访问量
•实现web应用的日志处理
•实现数据的压缩功能
•对传输数据进行加密
•实现XML文件的XSLT转换


声明式异常处理:Http错误web.xml
<error-page>
  <error-code>404</error-code>
  <location>/FileNotFound.html</location>
  </error-page>
FileNotFound.html中国加入:您所访问的页面不纯在,或移动到其他地方,如有其他页面,请访问首页。

程序式异常处理:Java异常处理web.xml
  <error-page>
  <exception-type>java.Sql.SQLException</exception-type>
  <location>/servlet/ExceptonServlet</location>
  </error-page>

通知servlet容器这个servlet永久不可用的“异常”;
throw new UnavailableException("数据库驱动加载异常");

使用RequestDispatcher来处理异常:


Servlet的会话跟踪
会话:服务器应当能够标示出来自单个客户的一系列请求,并把这些请求组成单独的工作会话。
状态:服务器应当能够记住前面请求的信息,以及对前一请求做出的处理信息

Servlet:规范规范中,描述了三种机制拥有会话跟踪。
SSL:安全套接字层,会话
Cookie:
Url:重写

SSL:是在TCP/IP之上种HTTP之下应用协议下的一种加密技术。
在客户端和服务器之间保持一种加密的连接。

Cookie:(甜饼)
以键值对象的方式记录会话跟踪的内容。
Name是Cookie的名字,用于会话的以JSESSIONID开头
Value是它的值。

URL重写:
当客户端不接受Cookie的时候,使用Url重写的机制来跟踪用户会话。
参数名必须是JSESSIONID做为URL的一部分发送给客户端。

Javax.servlet.http.HttpSession接口
封装了Session的概念。
HttpSession接口的方法。
Public object getAttribute(String )
Public java.util.Enumberation getAttributeNames();
Public void remoeAttribute(java.lang.String name);
Public void setAttrivute(java.lang.String name, java.lang.Object value);
以上用于读取,移除,和设置Session
Public long getCreateionTeme();//返回在什么时间创建时Session
Puboic string geId();//返回分配Session的唯一标识号

Public int getMaxInactiveInterval();//以毫秒为单位,servlet容器在客户的连个连接中请求的最大时间间隔;
Public void setMaxInactiveInterval();//设置,servlet容器在客户的连个连接中请求的最大时间间隔;

Public void ivalidate();//销毁这次会话

Public bookean isNew();//返客户端有无加入到Session中

Session 是一种服务器端的技术
Session 对象在服务器端创建
通过散列表来存储信息
Cookie是在客户端保存的信息
为了跟踪会话,服务器端在创建session后,要将SessionID交给客户端;

Tomcat6.0 通过配置可实现session的持久化
性能提高:
首页时:request.getSession();//查看有没有,没有的话直接创建
其他页面:request.getSession(bollean value);//如果有就返回
循环的时候拼接字符窜:不要用Stirng;用StirngBuffer

面试时问:page范围大还是“request”范围大
1. 页面中有多个请求时 page>request
2. 请求跨多个页面时 request>page

性能提高(网络中)
尽量传递基本数据类型。对象传递引响性能。

实体类在WEB应用中要实现对象序列化(网络传输中是以01010的形式保存的)。

常用的集合类,接口
1. 线程同步的。
2. 非线程同步的。

线程同步的。
Vector, Hashtable,
非线程同步的
1. 原值。Collection接口(包括list[可重复,可排序]和Set[不可重复,不排序]接口)
2. 对值。Map接口。
List :接口与其实现类实体容量可变的列表,按索引访问集合的元素,是有序的集合。
Set接口:set是一种不包含重复元素的Collection,set中只能有一个null元素,
HeshSet:能够快速定位一个元素,单要求存入的HashSet对象必须实现HashCode()方法。
TreeSet:将放入其中的元素按序存放。

Map接口:
HashMap 实现一个建到值映射的哈希表,通过建取得值对象。
Properties:把属性文件读入流中,以键值对的形式进行保存

基于Servlet的MVC设计模式
模式是什么:
模式:是一种重复利用的设计思想

开——闭 原则:
一个软件实体化应当对扩展开放,对修改关闭。

李氏代换原则:
对实现抽象化的具体步骤的规范。

迪米特法则:
一个软件实体应当与尽可能少的其他实体发生相互作用:

依赖倒转原则:
A.高层模块不应该依赖与低层模块,两者都应该依赖抽象。
B.抽象不应该依赖细节,细节应该依赖抽象。

合成/聚合复用原则:
在一个新对象里面使用一些已有的对象,使之成为一个新的对像的一部分,
新的对象通过向这些对象的委派达到复用已有功能的目的。

MVC设计模式
模型(Model):
视图(View):
控制器(Controller):

优点:
1, 各施其职,互不干渋。
2, 有利于开发分工中的合作。
3, 有利于组件的重用。

横向:
客户端IE
中间件jsp/servlet/EJB/
持久层:
纵向:
应用程序
Java EE服务器()
DB
OS

Model层开发:高级JDBC
6.Model层开发:高级JDBC
JDBC数据库操作方式
1.jdbc:DriverManager(,,,); getConnection();properties配置文件
2.JNDI->DataSource.getConnection();连接池
3.Hibernate ORM 映射框架。自动连接管理。

DataSource(数据源)
数据来源的地方。

web应用中的2种执行方式
1.将结果在远程执行返回结果回来。
2.将对象通过网络送回来。在本地执行

JNDI:java命名目录规范(接口)
javax.maning.context (J2EE设计模式)

对性能的影响
业务算法复杂,
持久层网络的消耗。

JNDI的配置
/*
* Context.xml中
<Resource name="jdbc/Databases"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="1000"
username="sa"
password=""
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Databases"/>
*/

/*
* web.xml中
<resource-ref>
<description></description>
<res-ref-name>jdbc/Databases</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>



View层开发:JavaBean,EL,JSTL的使用。

1. JavaBean
7.View层开发
CBD基于组件的开发
组件开发:面向对象向的高级开发。
VO:值对象,封装视图数据
BO:业务对象。
PO:持久对象。封装存储数据。

VO/PO -->TO(实体类)


jsp中分离代码的方式
1.servlet
2.JavaBean
3.Hellp类
3.标签库
4.MVC设计

class: 先找,再建。
type: 只找,不创建
(但也可作为接口和抽象类来描述)但web容器的寻找范围是重小到大。
2. EL(Expression Language)

7.View层开发:EL和JSTL
EL语法
${EL表达式}
可在Web应用中,多个页面来使用。
OGNL: 对象图导航语言。

JSTL:

EL:隐式对象
作用域范围有关的对象
pageScope
requestScope
sessionScope
applicationScope

与输入输出有关的对象
param
paramValues

其它隐含对象
pageContext
cookie
head
headValues
initParam

el运算符    说明
!或not 布尔值取反
empty 检查空值
* 乘法
/或div 除法
%或mod 求余
+ 加法
- 减法
<或lt 小于
>或gt 大于
<=或le 小于等于
>+或ge 大于等于
==或eq 等于
!=或ne 不等于
&&或and 逻辑与
||or 逻辑或
num1?num2:result条件运算符

EL运算符示例 输出结果
表达式
${5+4} 9
${5-4} 1
${5*4} 20
${5/4} 1.25
${5 mod 4} 1
${5<4} or ${5 lt 4} false
${5>4} or ${5 gt 4} true
${5.4>=5.3} or ${5.4 ge 5.3} true
${(5>4)?5:6} 5
${1>(4/2)} false
${4.0>=3} true
${100.0>=3} frue
${(10*10) ne 100} false
${'a'<'b'}     true
${'hip'gt'hit'} false
${4>3} true
${1.2E4+1.4} 120014
${3 div 4} 0.75
${10 mod 4} 2

3. JSTL标准标记库
分 类 URI Prefix
核心标记库 http://java.sun.com/jsp/jstl/core
C
XML标记库 http://java.sun.com/jsp/jstl/xml
X
格式标记库 http://java.sun.com/jsp/jstl/fmt
Fmt
SQL标记库 http://java.sun.com/jsp/jstl/sql
Sql
函数标记库 http://java.sun.com/jsp/jstl/function
Fn
JSTL核心标记库提供几乎说有jsp应用都要用到的基本功能的标记集合,包括通用标记,条件处理标记,循环与迭代标记,URL操作标记
JSTL的函数标记库提供标准函数库,一些公用的功能。
JSTL的格式标记库提供了一个对格式化对象的访问。
JSTL提供了SQL标记库与关系数据库的交互功能。

Web Service




分享到:
评论

相关推荐

    基于jsp/servlet/JavaBean的网上交易系统

    【基于jsp/servlet/JavaBean的网上交易系统】 在IT领域,基于jsp/servlet/JavaBean的网上交易系统是Web开发中的一个经典架构,尤其适用于初学者了解和学习Web应用程序的构建。这种架构利用了Java的强大功能和灵活性...

    accp 5.0 y2 开发基于jsp/servlet/javabean的网上交易系统 项目实战1

    在本项目实战中,我们将深入探讨如何使用Java技术栈,特别是JSP、Servlet和JavaBean,来构建一个基于Web的网上交易系统。这个系统能够模拟实际的电子商务环境,包括用户注册、登录、商品浏览、购物车功能、订单处理...

    ACCP5.0Y2(开发基于JSP/servlet/javabean的网上交易系统)

    【描述】在"ACCP5.0Y2"课程中,学生将深入学习JSP(JavaServer Pages)、Servlet和JavaBean,这些都是Java Web开发中的关键组件。JSP用于创建动态网页,Servlet是Java的服务器端程序,处理HTTP请求并生成响应,而...

    jsp/servlet/javabean开发的网上书店系统

    在现代互联网技术中,JSP(JavaServer Pages)、Servlet和JavaBean是构建动态Web应用的重要组件,尤其在实现 MVC(Model-View-Controller)设计模式时,它们扮演着不可或缺的角色。本篇文章将深入探讨使用这些技术...

    网上订餐系统 jsp/Servlet/JavaBean

    3. **java**目录:存放JavaBean和Servlet源代码,每个功能模块对应一个或多个Java类。 4. **lib**目录:存储项目所需的第三方库,如Servlet和JSP的API,以及其他可能的业务库。 5. **images**或**css**等:存放静态...

    jsp/servlet/javabean 分页源码

    在Java Web开发中,`jsp/servlet/javabean` 是一种经典的MVC(Model-View-Controller)架构模式,常用于构建动态网站。本分页源码实例是针对数据库查询结果进行分页显示的一个经典应用,它对于初学者理解如何在实际...

    ACCP 5.0基于JSP/Servlet/JavaBean的网上书店源码

    同时,对于理解JSP、Servlet和JavaBean之间的协作关系,提升Java Web开发能力,有着重要的实践意义。通过对网上书店的源码分析,可以深入学习到数据库设计、事务管理、安全性控制等多个方面,对于提升个人的全栈开发...

    (JSP_JavaBean_Servlet).zip_Jsp/Servlet_javabean servlet_servlet

    在IT行业中,Web开发是至关重要的领域,而JSP(JavaServer Pages)、JavaBean和Servlet是构建动态Web应用的三大核心技术。本项目"(JSP+JavaBean+Servlet)"结合了这三个组件,旨在创建一个功能丰富的Web应用程序。接...

    accp5.0-y2-jsp/servlet/javabean-指导学习1

    【标题】"accp5.0-y2-jsp/servlet/javabean-指导学习1" 涉及的是一个IT教育课程项目,主要是关于Java Web开发的深入学习,特别是聚焦在jsp、servlet和javabean这三个核心组件上。这个项目可能是北大青鸟教育机构的...

    JavaBean/JSP/Servlet 的商品数据库增删改查

    JavaBean、JSP(JavaServer Pages)和Servlet是Java Web开发中的核心技术,它们共同构建了动态网站和应用程序的基础。在这个“商品数据库增删改查”的项目中,我们可以通过这三个技术来实现对商品信息的管理,包括...

    开发基于JSP/Servlet/JavaBean的网上交易系统(网上书店)

    在开发基于JSP/Servlet/JavaBean的网上交易系统,如网上书店,这些技术的结合提供了构建高效、可扩展的Web应用程序的框架。这个系统的核心是实现购物车功能,这在电子商务网站中至关重要,因为它允许用户选择他们想...

    基于jsp/servlet/javabean网上订餐系统购物

    【基于jsp/servlet/javabean网上订餐系统购物】是一个典型的Web应用开发案例,它采用MVC(Model-View-Controller)设计模式,这是一种广泛应用于Web应用程序架构的设计思想,旨在提高代码的可维护性和可扩展性。...

    北大青鸟Y2JSP/Servlet/JavaBean的网上交易系统

    在这个系统中,JSP(JavaServer Pages)、Servlet和JavaBean是构建动态网站的关键技术。以下是这些技术的详细说明: 1. JSP(JavaServer Pages): JSP是一种基于Java的服务器端脚本语言,用于生成动态网页。...

    BBS.rar_MVC模式BBS论坛_bbs jsp_javabean_jsp/servlet BBS_servlet BB

    在这个项目中,开发人员利用JSP(JavaServer Pages)、Servlet和JavaBean技术来实现BBS的功能。 【描述】"基于JSP+Servlet+JavaBean MVC模式构建的BBS论坛" 指出这个论坛系统是用经典的Web开发技术栈实现的,包括...

    JAVA JavaBean+Servlet+jsp 实现网上购物系统项目 (项目说明+源码实例)

    JAVA JavaBean+Servlet+jsp 实现网上购物系统项目 (项目说明+源码实例)JAVA JavaBean+Servlet+jsp 实现网上购物系统项目 (项目说明+源码实例)JAVA JavaBean+Servlet+jsp 实现网上购物系统项目 (项目说明+源码...

    web应用系统设计(jsp+Servlet+JavaBean)

    JavaServlet是处理客户端请求并生成响应的标准方式之一。下面通过一个具体的例子来展示如何开发一个简单的Servlet。 **开发Servlet** - 创建一个Java类,继承自`HttpServlet`类,并重写`doGet`或`doPost`方法。 - ...

    JAVA JavaBean+Servlet+jsp 技术实现 网上购物系统 Demo (PPT + 设计文章+源代码)

    JAVA JavaBean+Servlet+jsp 技术实现 网上购物系统 Demo (PPT + 设计文章+源代码)JAVA JavaBean+Servlet+jsp 技术实现 网上购物系统 Demo (PPT + 设计文章+源代码)JAVA JavaBean+Servlet+jsp 技术实现 网上购物...

    使用JSP/Servlet/Ajax技术开发新闻发布系统\使用JSP/Servlet/Ajax技术开发新闻发布系统1

    在新闻发布系统中,JSP可以用来构建动态内容展示页面,比如新闻详情页、分类列表页,通过JavaBean或Servlet提供的后端服务获取和展示新闻数据。 【Servlet】 Servlet是Java EE中的一种核心组件,主要用于处理HTTP...

    商城实验 java servlet javabean mysql

    在本项目中,"商城实验 java servlet javabean mysql" 是一个基于Web的实训项目,主要使用了Java、Servlet、Javabean和MySQL数据库来构建一个简单的网上商城系统。以下将详细介绍这些关键技术及其在项目中的应用。 ...

Global site tag (gtag.js) - Google Analytics