JavaEE平台学习之 01开发第一个Servlet程序
学习目标:
1.掌握B/S结构与C/S结构的区别
2.掌握Http中GET和POST的差别
3.掌握什么是静态网页、动态网页
4.如何编写Servlet类、掌握部署Servlet、运行Servlet程序
在开发过程中,我们常遇到的程序分为以下三种:a.单机程序(如:记事本)b.基于客户端Client和服务器端Server结构的程序(C/S结构:QQ聊天软件等) c.基于浏览器Browser和服务器Server结构的程序(B/S结构:淘宝网站等);
B/S结构 pk C/S结构
C/S结构的程序是客户端与服务器模型,一般用在局域网中实现局域网内资源共享;它的特点:使用时需要安装客户端软件,访问资源时速度比较快,但更新软件困难,更新时必须重新安装客户端,这种结构的程序使用起来比较安全(相对B/S结构程序)。
B/S结构的程序是浏览器与服务器模型,一般用在Internat中实现Internat中资源共享;它的特点:使用时不需要安装客户端软件(浏览器,系统自带),访问资源时速度比较慢,但更新比较容易,更新时只需更新服务器端内容即可,这种结构的程序使用起来不太安全(相对C/S结构程序)。
B/S结构的程序的执行过程:
1.使用浏览器(IE、FireFox、Chrome等)在地址栏中输入URL(Uniform Resource Locator)即网址;
2.通过HTTP(HyperText Transfer Protocol)协议向Web服务器发送GET请求,请求需要的资源文件;
3.如果请求的资源文件存在则返回浏览器能够识别的HTML(HyperText Markup Language)内容。
URL统一资源定位符(http://192.168.1.168:8080/learnit/index.html)组成:
1.Http:// 超文本传输协议 或其它协议(FTP、SMTP等)
2.主机地址和端口号 192.168.1.168:8080 我们常看到的域名如www.cnblogs.com会通过DNS转换成对应的主机地址和端口号
3.资源文件learnit/index.html 即:主机上的文件
HTTP协议是一个基于请求(Request)和响应(Response)的协议,同时它是无状态(Stateless)的协议。
搭建编写Servlet程序环境:
1.下载JDK7.0并安装
2.下载Tomcat7.0并安装(这里我们使用Tomcat做为Web服务器),安装之前必须有JRE(Java Runtime Environment)Java运行环境
Servlet简介
Servlet就是一个Java类,它是通过Web容器(Container)载入、初始化,受到容器的管理才得以成为一个Servlet;容器就是用Java编写的一个应用程 序,负责与服务器沟通管理Servlet所需要的各种对象与资源、Servlet生命周期,如果没有了容器,Servlet就只是一个Java程序语言所编写的类。
Servlet生命周期:
a.实例化 (它是由Servlet容器创建的,而不是直接通过new关键字创建)
b.初始化 调用init()方法 (此方法只被执行一次)
c.服务 调用service()方法 (每次请求、响应都会执行service方法)
d.销毁 调用destroy()方法 (由Servlet容器销毁)
编写第一个Servlet程序:
package org.learningit.servlet; 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 doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ //设置内容类型 response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>First Servlet</title></head>"); out.println("<body>"); out.println("<h3>First Servlet ... doGet()</h3>"); out.println("</body>"); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ doGet(request,response); } }
注:编写Servlet类时,必须指定包。
编译HelloServlet.java文件:
javac -classpath Servlet-api.jar -d . HelloServlet.java
注:编译此文件时,将Tomcat/lib目录下的Servlet-api.jar和HelloServlet.java文件放在同一个目录下。
编译此文件之后,将在该目录下生成:org/learningit/servlet/HelloServlet.class文件。
部署Servlet程序步骤:
1.在Tomcat服务器webapps目录中创建一个hello目录。
2.在hello目录中创建WEB-INF目录
3.在WEB-INF目录中创建classes目录、web.xml文件
目录结构如下:
webapps
|-hello
|-WEB-INF
|-classes
|-web.xml
将生成的文件:org/learningit/servlet/HelloServlet.class文件放入到webapps/hello/WEB-INF/classes目录中
4.将web.xml文件中的内容设置为:
1 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
4 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
5 version="3.0">
6 <servlet>
7 <servlet-name>HelloServlet</servlet-name>
8 <servlet-class>org.learningit.servlet.HelloServlet</servlet-class>
9 </servlet>
10 <servlet-mapping>
11 <servlet-name>HelloServlet</servlet-name>
12 <url-pattern>/servlet/hello</url-pattern>
13 </servlet-mapping>
14 </web-app>
5.启动Tomcat服务器
6.打开浏览器,在地址栏中输入:http://localhost:8080/hello/servlet/hello
经过以上步骤第一个Servlet程序执行成功。