第一个Servlet程序

来源:互联网 发布:淘宝导航栏颜色代码 编辑:程序博客网 时间:2024/05/16 08:55

1.Servlet简介

Servlet是平台无关的服务器组件,它运行在Servlet容器中(如Tomact等WEB服务器),它是不能直接运行的,须作为组件由WEB服务器加载调用
                       

1.1Web容器

Web容器可看做是运行Servlet程序的环境,管理Servlet,类似于.class文件需运行在JVM。只要写的Servlet程序符合Web容器标准规范,Servlet就可以再各种不同厂商实现的Web容器上运行。

1.2Servlet作用

a.创建并返回基于客户请求的动态HTML页面
b.与其它服务器资源(如数据库或基于Java的应用程序)进行通信

2.第一个Servlet程序

开发Servlet的三种方法:a.实现Servlet接口(重点,用于理解原理);b.继承GenericServlet;c.继承HttpServlet(重点,主要使用),三种方法依次出现,都是为了弥补前一种方法的不足,使开发更简便。

2.1Web项目结构

应用程序运行在Tomcat中,Tomcat对应用程序的目录结构有要求(这样Tomcat才知道它要找的文件都在哪里),并且该目录必须放在F:\Program Files\apache-tomcat-8.0.15\webapps文件下。目录结构如下:
                           

MyFirstServlet:该Web应用程序的根目录。
WEB-INF:文件名必须固定的,且位于应用根目录下。该目录下的文件用户无法直接访问,只能通过Servlet请求转发访问。
web.xml:Web应用程序部署描述文件。(从其它项目复制过来,清空配置内容)
lib:放置jar文件。
classes:文件名不虚固定,放置编译过后.class文件。
other:其它文件夹,如存放源代码的src文件夹。

2.2编写MyFirstServlet.java文件

a.在src文件夹下新建MyFirstServlet.java文件。
b.新建MyFirstServlet类,该类实现Servlet接口。
c.因为实现Servlet接口,所以要实现该接口的所有函数;查看Servlet接口帮助文档,复制所有接口函数到该类下;有返回对象的函数全部返回null;函数声明为public。
d.写包名和导入包。(直接编译出现“错误:程序包javax.servlet不存在”,原因是没有指定java包路径)
e.解决“错误:程序包javax.servlet不存在”:将环境变量classpath设置为:F:\Program Files\apache-tomcat-8.0.15\lib\servlet-api.jar;将该servlet-api.jar包复制到F:\Program Files\Java\jdk1.8.0_25\jre\lib\ext文件。
f.编译:javac -d . MyFirstServlet.java
package com.my;import javax.servlet.*;import java.io.*;//Servlet是一个接口,所有的方法必须被实现public class MyFirstServlet implements Servlet{//该函数被容器调用,加载该Servlet;该函数只会被调用一次,且必须正确执行才会加载该Servletpublic void init(ServletConfig config)          throws ServletException {}//返回ServletConfig对象,它包含该Servlet的初始化参数public ServletConfig getServletConfig(){return null; }//该函数是服务函数,包含业务逻辑代码,当该Servlet接收请求时该函数每次都会被容器调用public void service(ServletRequest req,           ServletResponse res)             throws ServletException,                    IOException {System.out.pringln("HelloWeb"); }//等到该Servlet的配置信息public String getServletInfo() {return null; }//销毁Servletpublic void destroy() { }}

2.3配置web.xml部署MyFirstServlet.java文件

a.配置<servlet>标签
b.配置<servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <servlet><!-- Servlet注册名称 --> <servlet-name>myServlet</servlet-name> <!-- Servlet的全类名 -->  <servlet-class>com.my.MyFirstServlet</servlet-class>   </servlet>  <servlet-mapping><!-- 需要和某一个servlet节点的servlet-name子节点的文本节点一致--><servlet-name>myServlet</servlet-name> <!-- 映射具体的访问路径:/代表当前WEB应用的根目录--><url-pattern>/myServlet</url-pattern> </servlet-mapping></web-app>

2.4运行测试

a.运行F:\Program Files\apache-tomcat-8.0.15\bin下的startup.bin文件。
b.浏览器输入http://localhost:8080/MyFirstServlet/myServlet。
c.观察命令窗口输出HelloWeb

3.总结

不靠IDE,自己建立一个Web应用的过程遇到了很多问题,但这是值得的,这样才能理解原理,明白IDE都帮我们做了些什么,等IDE出现问题时,才能知道问题出在哪里,去哪修改,而不是面对错误提示,一脸无助。





0 0
原创粉丝点击