第一个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
- 第一个servlet程序
- 第一个servlet程序
- 第一个Servlet程序
- 第一个Servlet程序
- 第一个Servlet程序
- 第一个servlet 程序
- 第一个Servlet程序
- 第一个Servlet程序
- 第一个Servlet程序
- 第一个Servlet程序
- 第一个servlet程序
- 第一个Servlet程序
- 第一个Servlet程序
- 第一个Servlet程序
- 第一个servlet程序
- 第一个servlet程序
- 第一个servlet程序
- 第一个Servlet程序
- 2014.11.23多线程详解(转载)
- JAVA for循环写法
- VirtualBox 重要的配置文件和配置程序
- cocos2.0中的CCObject与cocos3.0中的Ref的比较
- C语言中printf()的用法
- 第一个Servlet程序
- POJ 3254 Corn Fields(状态压缩DP)
- iOS 简述消息推送流程
- c mac生成器(自动增长)
- 嵌入式动态内存分配过程
- 多点委托
- smarftorm哪些字段需要特殊定义,如果不特殊定义会有什么结果
- 如何评价今年的 ILSVRC 2014 结果
- discount nike nfl jerseys