Servlet的java文件编写的基本内容

开发Servlet的三种方法:

a.实现Servlet接口

b.通过继承GenericServlet

c.通过继承HttpServlet


以下代码是通过实现Servlet接口来实现业务逻辑的:

package com.hello;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public 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(){
        }
}
以上Servlet调用流程为:

1.Web服务器首先检查是否已经装载并创建了该Servlet的实例对象,如果是,则直接执行第3步,否则执行第2步。

2.装载并创建该Servlet的一个实例对象,即调用init()方法

3.创建一个用于封装HTTP请求消息的HTTPServletRequest对象和一个代表HTTP响应消息的HTTPServletResponse对象,然后调用

Servlet的service()方法并将请求和响应对象作为参数传递进去。

4.Web应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用destroy()方法。



一般以下3种情况,会导致destroy()方法的调用。

1.Web服务器重新启动

2.重新reload该Webapp时

3.重新启动计算机时


第二种实现Servlet的方法是继承GenericServlet,代码如下

<span style="font-size:12px;">package com.hello;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class MyFirstServlet extends GenericServlet{
        
        //该函数是服务函数,业务逻辑函数写在这里
        public void service(ServletRequest req,
                          ServletResponse res)
                    throws ServletException,
                            java.io.IOException{
        }
        
}</span>

代码较第一种方法较少,不用强制重写5种方法,只需重写service方法,即可实现业务逻辑。


第三种实现Servlet的方法是继承HttpServlet,代码如下

<span style="font-size:12px;">package com.hello;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class MyFirstServlet extends HttpServlet{
        
		//对get提交方式的回应
                protected void doGet(HttpServletRequest req,
						HttpServletResponse resp)
				throws ServletException,
						java.io.IOException{
		}
		//对post提交方式的回应
		protected void doPost(HttpServletRequest req,
						HttpServletResponse resp)
				throws ServletException,
						java.io.IOException{
				//可以在doPost()方法中调用doGet()方法,这样就相当于一个service()方法
				this.doGet();
		}
        
}</span>

HttpServlet方式开发Servlet需要重写doPost()和doGet()两种方法


那么表单提交数据get请求和post请求的区别在哪里呢?

1.从安全性来看 get<post   get提交的数据会在浏览器的地址栏显示

2.从提交的内容大小来看 get<post  get提交的数据不能大于2K,而post提交的数据理论上没有限制,但是实际中建议不要大于64K

3.从请求响应速度上来看 get>post  get要求服务器立即处理,而post请求可能形成一个队列请求 



编写完Servlet后生成class文件,放在classes目录下,然后再在web.xml文件中进行Servlet的部署即可调用

Servlet在web.xml文件中的部署

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值