Servlet部署细节

目录

开发servlet的三种方法

①实现servlet接口的方式

②使用GenericServlet开发servlet

③使用继承 HttpServlet 的方法来开发Serlvet

小结 get 提交 和 post的提交的区别

补充


开发servlet的三种方法

  1. 实现 Servlet接口
  2. 通过继承 GenericServlet
  3. 通过继承 HttpServlet

 

①实现servlet接口的方式

需求如下: 请使用实现 接口的方式,来开发一个Servlet ,要求该Servlet 可以显示Hello,world,同时显示当前时间.

步骤

  1. webapps下建立一个web应用 hspWeb1
  2. hspWeb1 下建立 WEB-INF->web.xml [web.xml可以从 ROOT/WEB-INF/web.xml拷贝]
  3. WEB-INF 下建立 classes 目录(我们的Servlet 就要在该目录开发.),建立  lib文件夹

     4. 开发MyServlet.java

 

package com.hsp;

import javax.servlet.*;

import javax.servlet.http.*;  为了能将servlet-api.jar包引入,需要配置环境变量

Servlet部署细节_第1张图片

变量值; E:\tomcat\apache-tomcat-6.0.20\lib\servlet-api.jar 记得带上文件名

Servlet部署细节_第2张图片

 

import java.io.*;

 

class MyFirstServlet implements Servlet

{

       //该函数用于初始化servlet,就是把该servlet装载到内存中

       //该函数只会被调用一次

       public void init(ServletConfig config)

          throws ServletException{

       }

 

       //得到ServletConfig对象

       public ServletConfig getServletConfig(){

              return null;

       }

      

       //该函数是服务函数,我们的业务逻辑代码就是写在这里

       //该函数每次都会被调用

       public void service(ServletRequest req,

                    ServletResponse res)

             throws ServletException,

                    java.io.IOException{

       }

       //该函数时得到servlet配置信息

       public java.lang.String getServletInfo(){

              return null;

       }

       //销毁该servlet,从内存中清除,该函数被调用一次

       public void destroy(){

       }

}

 

5. 根据Servlet规范,我们还需要部署Servlet

 

 

   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_2_5.xsd"

   version="2.5">

 

      

        

             

      <servlet-name>MyFirstServlet

        

      <servlet-class>com.hsp.MyFirstServlet 注意:后面不要带.java

   

             

        <servlet-mapping>

             

        <servlet-name>MyFirstServlet

             

        <url-pattern>/ABC

   

 

服务器调用流程:http://localhost:8088/ABC--->--->--->--->

6. 在浏览器中测试

在浏览器中输入

http://localhost:8088/hspweb1/ABC

 

7. 分析一下自己写可能出现的错误

     1)MyFirstServlet 名字不一样 (启动tomcat错误)

     2)com.hsp.MyFirstServlet  写成 MyFirstServlet.java,会报告500

     3)资源名自己写错http://localhost:8088/hspweb1/错误的资源url-pattern(404 错误)

 

②使用GenericServlet开发servlet

了解即可:

       案例 :

package com.hsp;

 

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public class MyGenericServlet extends GenericServlet

{

       public  void service(ServletRequest req,

                             ServletResponse res)

                      throws ServletException,

                             java.io.IOException{

              res.getWriter().println("hello,world,i am geneirc servlet");

       }

}

将该Servlet部署到web.xml文件中:

        

             

      MyGenericServlet

        

      com.hsp.MyGenericServlet

   

             

        

             

        MyGenericServlet

             

        /MyGenericServlet

③使用继承 HttpServlet 的方法来开发Serlvet

  1. 在软件公司 90%都是通过该方法开发.
  2. 举例说明; 还是显示 hello,world 当前日期

 

代码:

 

package com.hsp;

 

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

 

public class MyHttpServlet extends HttpServlet

{

       //在HttpServlet 中,设计者对post 提交和 get提交分别处理

       //回忆

,默认是get

 

       protected void doGet(HttpServletRequest req,

                     HttpServletResponse resp)

              throws ServletException,

                     java.io.IOException{

              resp.getWriter().println("i am httpServet doGet()");

             

       }

       protected void doPost(HttpServletRequest req,

                      HttpServletResponse resp)

               throws ServletException,

                      java.io.IOException{

              resp.getWriter().println("i am httpServet doPost() post name="+req.getParameter("username"));

       }

}

 

还有一个login.html

u:

 

小结      get 提交 和 post的提交的区别

  • 从安全看 get
  • 从提交内容看 get
  • 从速度看 get>post,get要求服务器立即处理请求,post请求可能形成一个队列请求
  • Get可以保留uri中的参数,利于收藏

补充

补充: 如果使用javac 去编译一个带包的java文件,则需要带命令参数

javac –d . java文件

补充: 如何不重启tomcat,就指定去 reload 一个web应用,方法:

进入到 tomcat 的  manager:

点击reload即可.

 

你可能感兴趣的:(服务器)