您的位置:首页 > 编程语言 > Java开发

java_web Servlet第一课

2016-04-27 17:30 399 查看
网络应用程序的架构(preliminary)
1、主机/终端
(1)特点
主机负责所有的业务计算,终端只负责
提供操作界面。
(2)优点
可靠、安全。
(3)缺点
过于昂贵,维护扩展困难。
2、client/server
两层的c/s
(1)特点
客户端负责提供操作界面及少量的业务计算,
服务器一般使用数据库(比如,oracle,sybase等等),
这些数据库都提供了相应的编程语言来编写复杂的
业务处理逻辑。
(2)优点
开发的效率非常高
(3)缺点
不好移值:比如,将数据库从sybase换成oracle,
需要重新编写业务处理逻辑。
不适合开发大型的应用:客户端需要与数据库之
间建立一个持续的连接。
三层的c/s
(1)特点
所有的业务逻辑都写在应用服务器上(
一般使用java语言来开发),客户端只负责
提供操作界面,数据库只负责数据的存贮。
(2)优点
方便移值。
适合大型的应用。
(3)缺点
客户端需要单独安装。
开发复杂(比如需要自定义协议,编写相应的

通信模块)。



3, b/s
(1)特点
客户端使用浏览器,服务器端使用web服务器,
客户端与服务器之间使用http协议来通信。
(2)优点
开发相对简单:不需要自定义协议,不需要开发
客户端与应用服务器(业务逻辑和业页仍然得开发)。

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



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


示例代码:

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级别的第一个网页
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: