您的位置:首页 > 编程语言 > Java开发

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

2014-08-24 16:19 363 查看
开发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文件中的部署
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐