天天看点

java_web Servlet第一课

网络应用程序的架构(preliminary)

1、主机/终端

(1)特点

主机负责所有的业务计算,终端只负责

提供操作界面。

(2)优点

可靠、安全。

(3)缺点

过于昂贵,维护扩展困难。

2、client/server

两层的c/s

(1)特点

客户端负责提供操作界面及少量的业务计算,

服务器一般使用数据库(比如,oracle,sybase等等),

这些数据库都提供了相应的编程语言来编写复杂的

业务处理逻辑。

(2)优点

开发的效率非常高

(3)缺点

不好移值:比如,将数据库从sybase换成oracle,

需要重新编写业务处理逻辑。

不适合开发大型的应用:客户端需要与数据库之

间建立一个持续的连接。

三层的c/s

(1)特点

所有的业务逻辑都写在应用服务器上(

一般使用java语言来开发),客户端只负责

提供操作界面,数据库只负责数据的存贮。

(2)优点

方便移值。

适合大型的应用。

(3)缺点

客户端需要单独安装。

开发复杂(比如需要自定义协议,编写相应的

通信模块)。

java_web Servlet第一课

3, b/s

(1)特点

客户端使用浏览器,服务器端使用web服务器,

客户端与服务器之间使用http协议来通信。

(2)优点

开发相对简单:不需要自定义协议,不需要开发

客户端与应用服务器(业务逻辑和业页仍然得开发)。

客户端不再需要单独安装了。

java_web Servlet第一课

1、什么是servlet?

sun公司制订的一种用来扩展web服务器功能的组件

规范。

(1)扩展web服务器功能:

早期的一些web服务器(比如,apache web server)

只能够处理静态资源的请求(即需要事先将html

文件写好,并保存在web服务器上),不能够处理动态

资源的请求(即需要进行相应的计算,生成相应的页面)。

早期使用cgi程序来扩展:

cgi:common gateway interface,可以使用perl,

c等语言来开发符合cgi规范的程序,web服务器收

到请求之后,如果需要计算,则会调用cgi程序来

处理。

servlet是一种更好的技术(相对于cgi),用来扩展

web服务器的功能,即当web服务器收到请求之后,

可以调用servlet来处理。

(2)组件规范

a.组件是什么?

是符合一定规范,实现了部分功能的软件模块,

组件需要部署到相应的容器里面才能运行。

b,容器是什么?

是符合一定规范,提供组件运行环境的程序。

servlet是一个组件,需要部署到servlet容器上

才能运行。

2、安装tomcat

step1,解压

将/opt/apache-tomcat-5.5.23.tar.gz解压到

/home/soft01下。

注:tomcat的安装压缩文件可以从

www.apache.org下载。

step2,配置环境变量

JAVA_HOME: jdk的安装路径。

step3,启动tomcat

cd /home/soft01/apache-tomcat-5.5.23

cd bin

sh startup.sh (或者用 sh catalina.sh run)

接下来,打开浏览器,输入

http://localhost:8080

关闭tomcat使用 sh shutdown.sh

3、如何写一个servlet?

step1,写一个java类,要实现Servlet接口或者继承

HttpServlet抽象类。

step2,编译。

step3,打包。

创建一个符合如下结构的文件夹:

appname (应用名)

WEB-INF

classes(放字节码文件)

lib(可选,放.jar文件)

web.xml(部署描述文件)

注:一般在开发完成之后,交付给用户去使用时,

会使用jar命令将以上文件夹压缩成一个以".war"

为后缀的文件。

step4,部署

将step3创建好的文件夹或者压缩文件(.war文件)

拷贝到servlet容器指定的文件夹下面(比如,

拷贝到tomcat的webapps文件夹)。

step5,访问

http://ip:port/appname/servlet-url

servlet-url在web.xml文件当中有相应的配置。

4、使用myeclipse来写一个servlet

step1,让myeclipse来管理tomcat。

step2,创建一个web工程

5、servlet如何运行的?

比如,在浏览器地址栏输入

http://ip:port/web01/hello?name=sally

java_web Servlet第一课

示例代码:

package web;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet{

public void service(HttpServletRequest request,

HttpServletResponse response)

throws ServletException,IOException{

//依据参数名获得参数值

String name = request.getParameter("name");

//生成一个消息头(content-type),告诉

//浏览器,服务器返回的数据类型。

response.setContentType("text/html");

//获得一个输出流

PrintWriter out = response.getWriter();

//输出

out.println("<h1>Hello " + name + "</h1>");

//关闭流

out.close();

}

}

web.xml文件配置

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" 

xmlns="http://java.sun.com/xml/ns/j2ee" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <servlet>

  <servlet-name>helloServlet</servlet-name>

  <!-- 类名要包含包名,并注意大小写 -->

  <servlet-class>web.HelloServlet</servlet-class>

  </servlet>

  <servlet-mapping>

  <servlet-name>helloServlet</servlet-name>

  <url-pattern>/hello</url-pattern>

  </servlet-mapping>

</web-app>

配置服务器,启动服务器(myeclipse 自带tomcat)

在浏览器中输入地址栏

http://localhost:8080/web01/hello?name=zhaojun

即可看到helloworld级别的第一个网页