学习笔记(一): 第一个servlet

来源:互联网 发布:手机屏幕爬蜘蛛软件 编辑:程序博客网 时间:2024/05/21 21:38

            最近在学习马士兵马老师的java web的视频,遂写下一些学习笔记以铭之。

前提:安装好一个java web的容器, 我当前使用的是tomcat-8.0.3。

第一步: 

              编写好一个html的静态网页,例如

<form id="form1" name="form1" method="get" action="servlet/ThreeParams"><table width="343" border="1"><tr><td width="92">param1</td><td width="94"><input name="param1" type="text" id="param1"  /> </td></tr><tr><td>param2</td><td><label><input name="param2" type="text" id="param2"  /> </label></td></tr><tr><td>param3</td><td><label><input name="param3" type="text" id="param3"  /> </label></td></tr><tr><td> </td><td><label><input type="submit" value="提交" /> </label></td></tr></table></form>



则表明该网页在提交的时候,使用的是get方式,将要访问的servlet为"servlet/ThreeParams"。

第二步: 

          编写一个servlet,该servlet从HttpServlet继承,并覆写其主要方法。

          

import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class HelloWorldServlet extends HttpServlet{public HelloWorldServlet(){System.out.println("construct");}@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("init");}@Overridepublic void destroy() {System.out.println("destroy");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {resp.setContentType("text/html");PrintWriter pw = resp.getWriter();pw.println("1");pw.println("<br/>");pw.println("2");pw.println("<br/>");pw.println("3");pw.println("<br/>");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {this.doGet(req, resp);}}

      

提示: 由于sun本身只提供了servlet的标准,所以需要使用具体容器提供的实现,我使用的是tomcat提供的实现。则需要从项目中导入一个servlet的jar包,该包在tomcat/lib下,名为servlet-api.jar。

               servlet的生命周期:

                    加载:           classloader 

                    实例化:        new             // 在整个webapp的生存期只执行一次

                   初始化:         init                //在整个webapp的生存期只执行一次,在实例化之后

                   处理需求:      service- doGet、doPost       

                   退出服务:      destroy        //在webapp关闭的时候调用一次


第三步:

           编写此webapp的web.xml。

           例如:

<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><servlet><servlet-name>HelloWorldServlet</servlet-name><servlet-class>HelloWorldServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloWorldServlet</servlet-name><url-pattern>/servlet/ThreeParams</url-pattern></servlet-mapping></web-app>
            说明:  1)  <servlet>的意思是为一个事实存在的servlet取一个别名。

                          2)   <servlet-mapping>的意义是为一个url建立一个servlet的映射,当访问此url时,将跳转到该servlet进行处理。

第四步:
           将web.xml、 HelloWorldServlet.class、之前写的网页文件1.html组装起来放入在tomcat的webapps文件夹下,使之成为一个真正的webapp。

           然后启动tomcat,并在浏览器中访问1.html 即可验证效果。

0 0
原创粉丝点击