Eclipse下创建简单Servlet

参考文章:一个简单的Servlet程序  http://blog.csdn.net/a153375250/article/details/50916428

Servlet简介

Servlet是什么?简单地说,它就是一个java程序,是一个运行在web服务器上的程序。它可以对Web浏览器或其他HTTP客服端程序发出的请求进行处理。但是使Servlet能够处理以上请求的前提条件是Servlet对象要被布置在Servlet容器当中,我们这里用的Servlet容器就是我们前面用到的Tomcat服务器。

Servlet的使用和JSP不同,它需要web.xml文件的配置。当一个客户端发出HTTP请求时,服务器会根据配置文件中的配置信息将该请求的信息发送给相对应的Servlet进行处理。

Servlet的基本结构

Servlet就是一段由java编写的程序,由服务器来维护。为了方便服务器的处理,Servlet需要遵循一定的结构规范。通常我们所说的Servlet就是一个实现了HttpServlet抽象类的类的实例。代码结构如下:

 1 import javax.servlet.ServletException;
 2 import javax.servlet.http.HttpServlet;
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5 import java.io.IOException;
 6
 7 public class ServTest extends HttpServlet {
 8     //init method
 9     public void init() throws ServletException {}
10     //handle get request
11     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
12     }
13     //handle post request
14     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
15     }
16     //handle put request
17     protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
18     }
19     //handle delete request
20     protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
21     }
22     //destroy
23     public void destroy() {}
24 }

7行,Servlet继承HttpServlet类。

9行,init()方法,服务器在创建Servlet实例后会调用该方法进行初始化的工作。

11~20行,Servlet就是通过这些do方法来处理对应的Http请求的。事实上,这些do方法都是从HttpServlet中继承来的,我们这里需要对这些方法进行重写以处理具体的请求。

23行,当服务器关闭时,该destroy()方法会被调用,销毁该实例。

Servlet生命周期

我们知道,Servlet是由服务器维护的。那么服务器是如何管理Servlet的呢?通常有以下几个阶段,这些阶段也就是Servlet从生到死的生命周期:

  • 当某个Servlet第一次被请求的时候,服务器会加载对应的Servlet类,将其放在Servlet实例池中。
  • 创建Servlet实例后,将调用该实例的init()方法进行一些初始化操作。(即Servlet的代码结构中的init())
  • 服务器通过调用Servlet的service()方法来处理客户端发送的请求。实际上,上面的Servlet的代码结构中的do方法都是通过service()来调用的。代码结构中我们没有显式地看到service()方法是因为我们没有对继承的该方法进行重写。
  • Servlet实例创建后会一直存在于内存中,直到服务器关闭,Servlet的destroy()方法被调用,该实例被销毁。

Servlet的xml配置

Servlet在使用之前需要进行一定的配置,来告诉服务器被请求的Servlet应该发到哪里。这其实就是一个Servlet在服务器的注册过程,这样服务器就会知道哪个Servlet请求对应哪个Servlet对象。配置过程通常分为Servlet的声明和Servlet的映射两部分。

Servlet的声明

语法格式如下:

1 <servlet>
2   <servlet-name>name</servlet-name>
3   <servlet-class>path</servler-class>
4 </servlet>

第一条语句中的name是声明的Servlet对象的名字,名字你可以自取,就像声明一个String abc一样,abc名字可以自取。

第二条语句中的path是用于指定你的Servlet的class文件的路径的。通常你把你的Servlet编译好的class文件放在Tomacat安装目录下的/webapp/ProjectName/WEB-INF/classes文件夹下,此时只需要写你的Servlet的class文件的名字就行了:

1 <servlet-class>ServTest</servler-class>

ProjectName是你的webapp文件夹,里面的WEB-INF及classes文件夹需要手动创建。

Servlet的映射

语法格式如下:

1 <servlet-mapping>
2   <servlet-name>name</servlet-name>
3   <url-pattern>path</url-pattern>
4 <servlet-mapping>

这里是对我们上面声明的Servlet的一个映射,所以这里的name要和上面声明中的name一样才行。

url-pattern用于映射你的访问URL,例如将你的访问URL映射为:

1 <url-pattern>/ServletTest<url-pattern>

你就可以通过:localhost:8080/ServletTest

来请求该Servlet了。

如果写成:* ace这种形式,则所有与ace为结尾的请求都通过本Servlet来处理

如:127.0.0.1:8080/ace.servlet/lalaace

制作简单Servlet

新建一个Dynamic Web Project,取名为SimpleServlet

在WebContent下新建jsp文件

Index.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Servlet</title>
</head>
<body>
    <center>
      <form action="MyServlet" name="form" method="post">
      Your Name:<input type="text" name="USERNAME"><br>
      <input type="submit" value="SUBMIT"></form>
    </center>
</body>
</html>

新建Servlet,package为niiam,ServletTest.java

 1 package niiam;
 2
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 /**
12  * Servlet implementation class ServTest
13  */
14 @WebServlet("/ServTest")
15 public class ServTest extends HttpServlet {
16     private static final long serialVersionUID = 1L;
17
18     /**
19      * @see HttpServlet#HttpServlet()
20      */
21     public ServTest() {
22         super();
23         // TODO Auto-generated constructor stub
24     }
25
26     /**
27      * @see Servlet#destroy()
28      */
29     public void destroy() {
30         // TODO Auto-generated method stub
31     }
32
33     /**
34      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
35      */
36     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
37         // TODO Auto-generated method stub
38         response.setContentType("text/html");
39         response.setCharacterEncoding("gb2312");
40
41         PrintWriter out = response.getWriter();
42         String name = request.getParameter("USERNAME");
43
44         out.println("Your Name : " + name);
45     }
46
47 }

保存,如果Eclipse设置了自动编译(Project->Build Automatically)

则在制定Build path(在本项目中为build/classes)中会出现.class文件

修改web.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
 3   <display-name>SimpleServlet</display-name>
 4   <welcome-file-list>
 5     <welcome-file>index.html</welcome-file>
 6     <welcome-file>index.htm</welcome-file>
 7     <welcome-file>index.jsp</welcome-file>
 8     <welcome-file>default.html</welcome-file>
 9     <welcome-file>default.htm</welcome-file>
10     <welcome-file>default.jsp</welcome-file>
11   </welcome-file-list>
12
13   <servlet>
14           <servlet-name>ServletHandle</servlet-name>
15           <servlet-class>niiam.ServTest</servlet-class>
16   </servlet>
17   <servlet-mapping>
18       <servlet-name>ServletHandle</servlet-name>
19       <url-pattern>/MyServlet</url-pattern>
20   </servlet-mapping>
21 </web-app>

其中,第15行内容注意要体现对应package中的class

在服务器上运行Index.jsp即可

原文地址:https://www.cnblogs.com/zhile/p/8213969.html

时间: 2024-08-24 23:23:45

Eclipse下创建简单Servlet的相关文章

eclipse下创建maven项目并部署到tomcat服务器(转)

maven项目部署到服务器有很多方法,可以利用jetty-maven-plugin或者tomcat-maven-plugin,这属于maven的知识点. 通常开发中,需要将项目放在服务器上借助开发工具进行调试,这里就写一下在eclipse中创建maven项目,并将它改造使之能够部署到集成在eclipse中的tomcat上面. 1.点击File-->New-->Project,选择Maven Project,点击Next 2  选择项目所在的java working set ,点击Next 3.

eclipse下创建android项目src和layout下为空

在eclipse中创建android项目,src目录和layout目录下为空,现在开始解决这个问题(这只是一个开始). 在网上查找答案,说是eclipse版本和adt版本不兼容. 第一步;查看eclipse的版本号. Help-->About Eclipse--->选择eclipse的logo图标 第二步:查看adt插件的版本号 Help->About Eclipse--->点击,installation Detail 第三步:如果版本号兼容,那么就更新adt版本 Help---&

5.Maven和Eclipse整合(两种方式进行插件的安装),Maven相关设置,Eclipse下创建Maven项目

 1  第一种方式是:在连网的情况下,通过在helpàInstall下安装. 新的地址是:http://download.eclipse.org/technology/m2e/releases 2  第二中方式是: 通过插件配置的方式进行安装插件. A  将maven所需的插件放到maven的安装目录下,截图如下: B 在Eclipse的dropins目录下创建以下三个插件: 三个文件中的内容分别是: m2e.txt path=E:/Installed/apache-maven-3.1.0/

eclipse下开发简单的Web Service

service部分 在eclipse下新建一个动态web项目 在项目中新建一个service类 编写SayHello类的代码 package org.sunny.service; //包不要引用错了 import javax.jws.WebService; import javax.xml.ws.Endpoint; //注解@WebService不能少 @WebService public class SayHello { //该方法为客户端调用的方法,方法名任意 public String s

eclipse下创建maven管理

一.搭建环境 1.1JDK jdk配置就不用多说了吧.直接在电脑环境变量path下加上JDK安装路径 1.2eclipse 安装eclipse 1.3 maven 1,3.1配置maven环境变量 校验maven环境变量是否配置成功 1.3.2 eclipse配置maven插件 Help->Eclipse Marketplace搜索关键字maven到插件Maven Integration for Eclipse 并点击安装即可 记得要重启.这时候我们需要将此处安装的maven与上面配置的mave

eclipse下创建maven spring MVC 项目

一.创建maven项目 1.创建准备工作  -eclipse (本人使用的是Neon.3 Release (4.6.3)版本,此版本用使用jdk 1.8)  -jdk1.8.0_101  -maven-3.5.0  上面这些不要求一样,其他版本大致也是一样的. 首先安装maven,在eclipse上配置好User Setting,如下: 2.选择File→new→other→Maven→Maven Project,这里我们选择创建maven项目 第一步选择完maven project后,我们选择

如何使用eclipse创建简单的servlet

Servlet是一种基于java开发的服务器程序,可以对外公布服务,如果是浏览器应用,可以通过浏览器打开网址的方式查看服务.创建servlet要继承httpservlet,并且在web.xml中配置拦截方式,,小编介绍下如何在eclipse下创建一个简单的servlet程序. 工具/原料 eclipse开发工具 httpServlelt包 java开发环境 方法/步骤 首先,创建一个简单的动态web项目. 打开eclipse,点击工具栏上的File文件--New新建--Project项目   选

在Eclipse下使用Maven创建SpringMVC样例项目

1,新建maven项目,项目名起为:MavenSpringMVC. 具体步骤参见我的上一篇博客:在eclipse下使用Maven创建Struts2项目样例 2,配置pom.xml文件,引入依赖包(当然,我也不是一开始就知道需要引入哪些包的,我一开始也只是引入了Spring的核心包,后面发现缺包了就再补上) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200

ubuntu下创建eclipse桌面快捷方式

1.终端代码 : cd /home/xyh/Desktop sudo gedit eclipse.desktop 然后在弹出的文件中输入: [cpp] view plaincopyprint? [DesktopEntry] Encoding=UTF-8 Name=eclipse Comment=Eclipse IDE Exec=/usr/local/eclipse/eclipse_SDK/eclipse Icon=/usr/local/eclipse/eclipse_SDK/icon.xpm T