JAVA WEB
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请求路径(成为上下文�
相关文档:
快排:快速排序,难度不是太大,但是是我经常把玩的小代码之一,引用快排代码创始人的一句话“要不是简练又明显没有错误,要不是复杂没有明显的错误”
起因:
主要是前一阵看刘汝佳的《算法艺术与信息学竞赛》P73页,碰巧我又亲手写了一遍那书上的测试了一下,发现竟然是错误的,然后我又测试了一下我以� ......
不能好高骛远,从写小程序开始。
一个没隔N分钟就提醒休息一下的小程序,嗯,还只是一个挺简陋的东西,而且还发现一点现在我无法解决的bug。
/**
* 休息提醒小程序
* 存在问题是:单击时(不分左击右击),同时会在任务栏出现程序(因为这个托盘功能是参考网上例程
* 写的,不知道该如何避免这个问题);
* 如 ......
//求两数的最大公约数和最小公倍数
import java.util.*;
public class Dais02
{
public static void main(String args[])
{
int m,n;
Scanner s = new Scanner(System.in);
System.out.println("请输入你想要是数字");
m = s.nextInt();
n ......
Java的回调方法不像c那样可以直接传递一个方法,java传递的是引用,所以java对方法回调的解决办法是直接传递一个接口,对接口进行实现。下面是一个例子
首先定义一个接口Car,有一个run的方法声明
Java代码
package ocm.callback;
public interface Car {
& ......