MyException - 我的异常网
当前位置:我的异常网» Java相关 » Java基础——Servlet(1)

Java基础——Servlet(1)

www.MyException.Cn  网友分享于:2013-08-11  浏览:0次
Java基础——Servlet(一)

在学习Servlet之前,需要首先学习一些关联性的知识。

一、动态网页程序

动态网页:它是网页中的偏功能性的部分也是最重要的部分。它不是我们平时所看见的页面特效,展示的效果。而是,一种交互行为。比如,用户注册一个账号的过程中,注册格式的提示与最后的提交等工作。

动态网页程序:它是web服务器的作用,是接收用户请求,并将响应结果返回浏览器,对于静态HTML的访问,web服务器可以直接从文件系统中读取文件内容(html文件)后返回给浏览器(象以前做的socket程序),但对于那些要根据条件去动态创建内容的访问请求,web 服务器本身不具备处理的能力,而且要专门的web服务器处理程序模块来处理。因此 动态网页内容的创建分为两个步骤:

1.使用某种编程语言写出相应的程序

2.需要一个专门的web服务器程序模块来解释执行该动态网页程序

这个专门的web服务器程序模块,称为引擎 ,常用的有 ASP 引擎,Servlet 引擎,JSP引擎。引擎 以web 服务器扩展模块的形式提供,通常是由那些提供动态网页解决方案的公司开发的。引擎要与动态网页程序进行通讯,必须要提供一些API给动态网页程序调用。

引擎 提供的API 有两方面的作用:

1.将访问请求的相关信息传递给动态网页程序 //访问者的IP,请求消息头

2.将动态网页程序产生的结果传给浏览器              

我们以前讲过URL ,它不仅可以指向一个静态html文件,还可以指向服务器端某种可被解释运行的程序文件。如果URL 后缀名为.html 或.htm,则web服务器直接在本地文件系统中找这个文件,并且原封不动的传回给客户端,这样产生的网页文档总是相同的。如果URL 后缀名不是html,而是符合某种引擎所处理的资源名的特征,web服务器就会把请求交给相应的引擎去处理,然后由引擎调用某个程序文件,并将程序生成的结果返回给客户端。目前,不少公司提供了动态网页技术的解决方案,称之服务端的web编程技术,常见的有ASPNET、Servlet / jsp、PH。

下面用一张图来解释上面的内容:

了解了动态网页程序,有助于我们接下来的学习。尤其是,一些工作原理,方便我们理解,自己做的事情在整个更需当中的位置。

二、Servlet简介

(SUN公司制定的规;按 servlet 规范开发;在java ee 之前就存在了,在开发动态网页程序中广泛应用;是学习jsp的基础)

一个Servlet 程序,就是一个实现了特殊接口的java类,它由支持Servlet的服务器(具有servlet引擎)调用和运行。

一个Servlet程序,负责处理它所对应的一个或一组URL地址的访问请求,接收客户端请求,产生响应内容。

Servlet 和普通程序相比,只是输入信息的来源和输出结果的目标不同,所以.普通程序能完成的功能 ,Servlet 也能完成。

三、Servelt 程序具有如下功能

1.获取客户端通过form表单提交的数据,还有URL后面的参数信息

2.创建客户端的响应消息的内容

3.访问服务器的文件系统

4.连接数据库,开如基于数据库的应用

5.调用其他java类

SUN 公司制定了一套专门用于Servlet程序开发的java类和接口,统称为Servlet API,支持Servlet的服务器软件。通常带有ServletApi的jar包。

经如说Tomcat 这个包在 C:\Tomcat6\lib\servlet-api.jar

四、安装Tomcat

一台计算机,只要装了web服务器软件(IIS ,TOMCAT等) 就成了服务器。(现在我的电脑已经安装了Tomcat,成为服务器了呀,嘻嘻~~)

最简单的网站只要一台web服务器,复杂的网站,包扩多台web服务器组成的集群系统,负载均衡设备,具有缓存的代理服务器(可能有多级),数据库系统等。

(一)安装Tomcat有两种方法:

1.到官网直接下载即可:https://tomcat.apache.org/ 

2.如果你有压缩包,将它直接解压就可以用了。

(二)Tomcat简介

它是 Apache jakarta项目中的了一重要子项目;

它是 Sun 公司推荐的运行 Servlet 和 JSP 的容器(引擎)

Tomcat 是开源的

Tomcat 还具有普通 Web 服务器的基本功能

安装之后设置一下路径,方便以后在cmd中调用(或者你可以直接到安装包中直接点击startup.bat)

下面是回顾一下设置path的方法:

或者你可以直接到安装包中直接点击startup.bat

(三)安装tomcat要注意的

-- 在安装之前,要先装jdk

-- 一台机器上可以安装多个tomcat ,但要注意端口号不能冲突

-- 它的默认端口号是 8080

-- 安装路径下,尽量不要用中文和空格

-- 启动方式 动行 bin 目录中的 startup.bat

-- tomcat不能同时启动两次,否则端口出现冲突   //JVM_BIND

-- 在服务器上的tomcat,千万不要用空密码(安全性)

-- 访问 http://localhost:8080/

 

五、第一个Servlet 程序

手动创建Servlet程序的步骤

1) 固定结构

-- 在tomcat 的 webapp 目录下,建一个 myweb的 文件夹

-- 在myweb这个文件夹里,建一个WEB-INF的文件夹 //大小写一点不能错

-- 在这个 WEB-INF 中,建一个classes文件夹 //大小写不能错

-- 在WEB-INF 中,建一个lib文件夹 //不是绝对的

-- 在 WEB-INF 中建一个 web.xml的文件

2) 开发Servlet程序

导Jar包:

开发程序设置:

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

//用的是实现Servlet接口的方式
public class Test implements Servlet {

    @Override
    public void destroy() {
        // reload该Servlet和关闭tomcat时被调用
        // TODO Auto-generated method stub
        System.out.println("--------destroy----------");
    }

    @Override
    public ServletConfig getServletConfig() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getServletInfo() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void init(ServletConfig arg0) throws ServletException {
        // 用于初始化该Servlet
        // 只会被调用一次,(用户第一次访问该Servlet的时候)
        // ServletConfig config, servlet 引擎将 Servlet容器的对象和 Servlet 的配置参数进行传入

        // TODO Auto-generated method stub
        System.out.println("----config----");
    }

    @Override
    public void service(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException {
        // 最主要的业务方法,每次请求,都会调用
        // arg0 代表客户端的请求信息
        // arg1 代表服务器返回的信息
        // TODO Auto-generated method stub
        System.out.println("----service----");

        PrintWriter out = arg1.getWriter();
        out.print("service is calling ");
    }

}

讲上面的test.class文件复制到C:\apache-tomcat-7.0.79\webapps\myweb\WEB-INF\classes

3) 布署描述

4) 访问

 六、 servlet的生命周期

servlet部署在容器里(我们使用的是Tomcat,也可是别的容器,比如jboss,weblogic。。。),它的生命周期由容器来管理。

servlet的生命周期分为以下几个阶段:

1.装载servlet,由相应的容器来完成

2.创建一个servlet实例

3.调用servlet的init()方法,该方法只会在第一次访问servlet时被调用一次

4.服务:调用servlet的service()方法,一般业务逻辑在这里处理,该方法在访问该servlet时,会被调用

5.销毁:调用servlet的destroy()方法,销毁该servlet实例,该方法在以下情况被调用:

1)tomcat重新启动

2)reload该webapps

3)重新启动电脑

文章评论

Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
漫画:程序员的工作
漫画:程序员的工作
程序员应该关注的一些事儿
程序员应该关注的一些事儿
中美印日四国程序员比较
中美印日四国程序员比较
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
鲜为人知的编程真相
鲜为人知的编程真相
我的丈夫是个程序员
我的丈夫是个程序员
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
为什么程序员都是夜猫子
为什么程序员都是夜猫子
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员都该阅读的书
程序员都该阅读的书
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
我是如何打败拖延症的
我是如何打败拖延症的
代码女神横空出世
代码女神横空出世
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Java程序员必看电影
Java程序员必看电影
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
编程语言是女人
编程语言是女人
每天工作4小时的程序员
每天工作4小时的程序员
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
程序员必看的十大电影
程序员必看的十大电影
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
旅行,写作,编程
旅行,写作,编程
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
程序员和编码员之间的区别
程序员和编码员之间的区别
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员的鄙视链
程序员的鄙视链
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
 程序员的样子
程序员的样子
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
老程序员的下场
老程序员的下场
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
如何成为一名黑客
如何成为一名黑客
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有