servlet:运行在服务器端的java程序
applet: 运行在客户端浏览器中的一小段java代码
程序的系统架构:
单机版:运行在单台机器上的程序
程序更新需要更新每一个客户
没有交互性
web应用程序:
C/S:客户端---服务器端
胖客户端:将应用程序的大部分内容置于客户端放置
优点:
服务器端压力较小。访问效率较高
缺点:
更新时依然需要更新每个客户端信息
瘦客户端:将应用程序的大部分内容置于服务器端放置
优点:
更新时几乎不需要更新每个客户端信息
缺点:
服务器端压力很大
B/S:浏览器---服务器端
将应用程序全部置于服务器端,客户端只需要通过本地安装的浏览器,即可访问应用
(servlet是JAVAEE中,专门用于开发B/S架构web应用程序的规范)
10
10000 在服务端架设了多台服务器之后,负载均衡,在线恢复
EJB用于开发分布式应用程序
Html(javaScript):作为客户端显示页面
----servlet :
1 作为前台客户端页面和服务器端java程序交互的桥梁
2 servlet本身也在服务器端,需要跨越网络和客户端交互
JDBC(DAO+XML) :放置在服务器端的核心处理程序
SQL(ORACLE) :提供存储数据的机制
3页面(index.html --- show.html --- callback.html
baicai.html --- ....
)
http://www.geqiwei.com/index.html
-----
----------ip
---默认端口号(具体服务)
--------具体的页面
(index.html
----show.html
----order.html[产品类型输入框、数量、提交按钮===使用js格式验证]
<form action=" ">
----》获取数据,并判断(业务验证),(servlet)
通过验证,修改数据库中数据(JDBC)
----successful.html
)
web容器的作用:
1 接收客户端发送的请求字符串
http://www.geqiwei.com/index.html
2 如果访问是**.html则直接调用该页面,发送给客户端
如果访问是非.html信息,则需要调用java程序
根据请求信息,查找其对应的类路径
---------------映射关系(请求信息===处理类路径)
Map 不能持久化
资源文件 结构化不强
xml 配置文件(dtd文件) --web.xml
3 根据类路径,调用该类中的固定方法
---servlet
4 根据类的处理结果,决定调用某个资源,再发送给客户端
程序员需要提供的:
1 编写遵循servlet规范的处理类
2 将请求字符串和处理类路径的对应关系,写在web.xml中
web容器的种类:
*tomcat
jboss
*weblogic bea
websphere
resin
sun application Server
....
Tomcat命令行使用的配置方式:
JAVA_HOME = jdk的安装路径
CATALINA_HOME = tomcat的解压路径
tomcat基本操作:
启动tomcat:
双击%tomcat%/bin/startup.bat
关闭tomcat:
双击%tomcat%/bin/shutdown.bat
修改tomcat默认端口号:
在%tomcat%/conf目录下的server.xml文件中,修改其中的<connect port="8080">为8088
配置tomcat用户名和密码:
在%tomcat%/conf目录下的tomcat-user.xml文件中的根标签中,添加一组标签,如下所示
<user username="用户名" password="密码" roles="admin,manager"/>
编写helloWorldServlet:
1 编写处理类,要求必须实现接口javax.servlet.Servlet,并且实现其中的所有方法
public class HelloServlet implements Servlet{
public void init(ServletConfig config) {
}
//编写服务器端处理客户端请求的具体服务信息
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException{
PrintWriter out = res.getWriter();
out.println("<font color='red'>hello world~!</font>");
}
public void destroy(){
}
public ServletConfig getServletConfig() {
return null;
}
public String getServletInfo() {
return null;
}
}
2 配置servlet api的环境变量
classpath = ...;F:/yangxp/tools/apache-tomcat-5.5.12/common/lib/servlet-api.jar
3 编译java文件
javac -d . HelloServlet.java
4 在tomcat/webapps目录下创建一个文件夹,代表web应用。如hello
按照tomcat部署的要求方式文件,如下:
webapps
|_hello
|_WEB-INF
|_lib 放置当前web应用自己需要的jar包
|_classes 放置编译之后的文件
| |_编译之后包和.class文件
|_web.xml 编写请求信息和处理类路径的映射关系
5 重启tomcat/重新加载当前应用
6 在浏览器地址栏中输入
http://localhost:8088/应用名/请求信息
进行测试
404
客户端发送的请求,在服务器端查找不到对应的资源
web.xml
500
服务器端的处理类出错
servlet
http://162.105.191.32:8088/hello/sayHello
统计客户端的访问量
servlet的生命周期:
1 当前Servlet被加载到虚拟机中
2 init
servlet的初始化流程
接收外界传递给当前Servlet的信息---tomcat
3 service
servlet提供给客户端服务的流程
ServletRequest :封装客户端发送的信息
ServletResponse :封装返回客户端的信息
ServletRequest
---->
客户端 服务器端
<----
ServletResponse
4 destroy
serlvet被销毁的流程
web容器,需要轮询当前正在访问该处理类的客户端线程,如果有线程访问,则继续轮询
直至没有任何线程访问,则销毁该对象
注意:
html和javaScript代码是原封不动的发送给客户端,在客户端的浏览器中才会解析执行
作业:
将客户端用户访问量统计,添加持久化访问量的工作
保证服务重启时,访问量继续累加