开发servlet,首先需要import javax中的servlet包可能还用用到java中的io包。需要注意的是这三种方式执行业务逻辑的方法。实现Servlet接口里 会将业务逻辑代码放在service方法中;继承GenericServlet里面 也是将业务逻辑代码放在service方法中,两种方法都会将ServletRequest和ServletResponse的对象作为入参;在继承HttpServlet类方式里面业务逻辑代码可以放在doGet和doPost方法里面,而且传入的参数也不一样,传入的是HttpServletRequest和HttpServletResponse的对象,一定要注意!!
①通过实现Servlet接口来开发servlet
这种方式能很好的体现一个servlet的生命周期但是不常用到。
在Servlet接口中一共定义了五个方法,我们要将他们一一实现才能算是完成一个servlet。以下这五个方法。
⑴void init()throws ServletException{} 是servlet的生命周期方法,该方法是用来初始化servlet的,只在该servlet第一次创建对象的时候被调用一次。
⑵void service(ServletRequest req,ServletResponse res){}
生命周期方法, 这个方法中用来存放该servlet的业务代码,也就是需要完成的程序代码。每次servlet被调用该方法都会执行。
⑶void destroy(){} 生命周期方法,当servlet被销毁时执行这个方法。
⑷public ServletConfig getConfig(){} 好像是一个返回该Servlet初始化参数和启动参数的ServletConfig对象的方法。一般在编写Servlet时都让它返回null。
⑸public String getServletInfo(){} 返回该Servlet类的信息,开发者,开发时间之类的。
代码如下:
import java.io.*;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
//实现Servlet接口来开发Servlet。
public class Welcom implements Servlet{
//处理业务的方法,每当客户端访问一次该Servlet就会被调用一次
public void service(ServletRequest request,ServletResponse response){
//javax.servlet.ServletResponse response;
try{
PrintWriter pw=response.getWriter();
pw.println("welcom !");
}catch(Exception ex){
ex.printStackTrace();
}
}
public ServletConfig getServletConfig(){
return null;
}
public String getServletInfo(){
return null;
}
//初始化的方法,只会在用户访问该Servlet时被调用,且只会被调用一次。
public void init (ServletConfig arg0){
System.out.println("init it! ");
}
//释放内存。
public void destroy(){
System.out.println("destroy");
}
}
②通过继承GenericServlet
这种方式也不是经常会用到的方式,
这种方式通过继承GenericServlet类,覆盖该类中的service方法来开发servlet,
public void servic(ServletRequest request,ServletResponse response)
{}在这个方法中写入业务代码。代码如下:
[java] view plain copy
package com.kiritor.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.GenericServlet;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* Servlet implementation class ExGenericServlet
*/
public class ExGenericServlet extends GenericServlet implements Servlet {
private static final long serialVersionUID = 1L;
/**
* @see GenericServlet#GenericServlet()
*/
public ExGenericServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see Servlet#service(ServletRequest request, ServletResponse response)
*/
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.write("Imp Servlet!");
writer.flush();
writer.close();
}
}
③通过继承HttpServlet类来创建servlet
这种方式是最常见的一种方式开发Servlet
因为http在提交表单的时候一般都是get和post两种方法。
用这种方式的话,就要通过覆盖
doGet(HttpServletRequest req,HttpServletResponse res)和
doPost(HttpServletRequest req,HttpServletResponse res)两种方法来完成。
在覆盖两个方法时,需要传入HttpServletRequest 和HttpServletResponse 两个类的实例对象,这两个对象不需要我们去创建,web容器会帮我们去创建,我们只需要在方法中传入就行了。
在方法体中因为在调用的过程中可能会抛出异常,所以需要方法内try{}catch()住可能会抛异常的代码。
如果两种方法处理业务逻辑都相同的话,在两个方法中都写出同样的代码就会代码重复,为了提高代码复用性我们只需要在doPost()方法中通过this.doGet(),来完成同样的任务,反之亦可。
代码如下:
import javax.servlet.http.*;
import java.io.*;
public class DengLu extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
pw.println("<HTML>");
pw.println("<BODY>");
pw.println("<h1 align='center'>登录界面</h1>");
pw.println("<form action=tiaozhuan method=post>");
pw.println("<p align='center'>用户名:<input type=text name=username></p>");
pw.println("<p align='center'>密码 :<input type=password name=pw></p>");
pw.println("<p align='center'><input type=submit valua=登录></p>");
pw.println("</form>");
pw.println("</BODY>");
pw.println("</HTML>");
}catch(Exception ex){
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req, res);
}
}
分享到:
相关推荐
它是大多数Servlet开发中最常用的方式,因为它已经为我们提供了处理GET和POST请求的默认实现,即`doGet()`和`doPost()`方法。只需覆盖这两个方法,就可以处理HTTP请求。这种方式简化了开发过程,降低了编写大量重复...
5. **Servlet生命周期**:包括加载和初始化、服务、销毁三个阶段。初始化阶段,Servlet容器调用Servlet的`init()`方法;服务阶段,每当有请求到达,容器会调用`service()`方法(对于HTTP Servlet,实际上是`doGet()`...
Servlet技术也是JSP技术(另外一种动态网页开发技术)的基础。一个Servlet程序就是一个实现了特殊接口的 Java类,用于被支持Servlet的WEB服务器调用和运行,即只能运行于具有Servlet引擎的WEB服务器端。一个Servlet...
本文档将详细介绍如何通过实现`Servlet`接口的方式,从零开始构建一个简单的Servlet程序。这个Servlet不仅会显示“Hello World”,还会显示当前的时间。这对于刚接触Servlet技术的初学者来说非常实用。 #### 二、...
Servlet开发流程是Web开发中的重要一环,尤其对于初学者来说,掌握这一流程至关重要。Servlet是一种Java编程语言的实现,用于扩展服务器的功能,处理HTTP请求。以下是对Servlet开发流程的详细解析: 1. **创建...
基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍管理系统基于 Servlet+jsp+mysql 开发 javaWeb 学生宿舍...
Servlet开发手册Servlet开发手册Servlet开发手册Servlet开发手册
Java Servlet 是一种服务器端技术,用于扩展应用程序的功能。Servlet 可以收集来自 HTML 表单的数据、执行数据库操作以及响应客户端请求。本文档将详细介绍如何使用 MyEclipse 8.5 和 Tomcat 6.0 开发 Java Servlet ...
在Java Web开发中,Servlet和JSP是两个关键的技术组件,它们被广泛用于构建动态、交互式的Web应用程序。本项目以"Servlet+jsp Java Web开发"为主题,采用经典的开发环境:MySQL数据库、Tomcat 6应用服务器、Eclipse...
这个"Servlet简单开发示例"是一个很好的起点,可以帮助初学者理解Servlet的工作原理和基本使用方法。 Servlet是一个Java类,实现了Servlet接口或者GenericServlet或HttpServlet接口。它们在服务器端运行,接收并...
Servlet API是Java Web开发中不可或缺的一部分,它提供了一种灵活的方式来处理HTTP请求和响应。通过了解`Servlet`接口及其相关方法,开发者可以构建出高效、可靠的Web应用程序。同时,掌握`ServletRequest`接口的...
手工开发Servlet涉及一系列步骤,以下将详细讲解这些步骤,并涵盖开发过程中需要注意的关键点。 **步骤一:创建Servlet类** 首先,我们需要创建一个继承自`javax.servlet.Servlet`或`javax.servlet....
Servlet的生命周期包括初始化、服务和销毁三个阶段。初始化阶段,Servlet容器(如Tomcat)加载Servlet类并调用`init()`方法;服务阶段,每次接收到请求时,都会调用`service()`方法来处理;销毁阶段,当Servlet不再...
基于 Servlet 开发的房屋发布系统基于 Servlet 开发的房屋发布系统 基于 Servlet 开发的房屋发布系统基于 Servlet 开发的房屋发布系统 基于 Servlet 开发的房屋发布系统基于 Servlet 开发的房屋发布系统 基于 ...
《JSP+Servlet+Tomcat应用开发从零开始学》这本书是针对初学者设计的一本教程,旨在帮助读者从零基础开始学习如何使用JavaServer Pages(JSP)、Servlet和Apache Tomcat服务器进行Web应用程序的开发。JSP、Servlet和...
本资源包主要围绕这三个核心概念:Tomcat、Servlet和c3p0连接池,来帮助开发者进行简单的Web应用开发。 首先,`c3p0`是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在数据库...
### 简单Servlet开发详解 #### 一、实验目的 在本次实验中,我们将学习如何使用Eclipse IDE来开发并测试几个简单的Servlet程序。通过本实验,学生能够更深入地理解Servlet的工作原理,掌握其开发流程,并进一步...
在IT行业中,Web开发是一项核心技能,而基于JSP(JavaServer Pages)和Servlet的开发是构建动态网站的常见方式。本项目是一个基于这两项技术的购物车应用,旨在帮助初学者理解如何将它们结合起来实现实际功能。在这...
Servlet是Java Web开发中的核心组件,它是一种Java编程接口,用于扩展服务器的功能,尤其是在Web服务器上处理客户端...通过学习和实践,开发者能够熟练掌握Servlet开发技术,为构建更复杂的Java Web应用打下坚实基础。