兄弟连java网站_IT兄弟连 Java Web教程 Servlet

原标题:IT兄弟连 Java Web教程 Servlet

Servlet的定义

Java Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。

使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其它源的记录,还可以动态创建网页。

Java Servlet通常情况下与使用CGI(Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于CGI,Servlet有以下几点优势:

● 性能明显更好。

● Servlet在Web服务器的内存空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。

● Servlet是独立于平台的,因为Servlet是用Java编写的。

● 服务器上的Java安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet是可信的。

● Java类库的全部功能对Servlet来说都是可用的。它还可以通过socket和RMI机制与数据库或其他软件进行交互。

图1.23显示了Servlet在Web应用程序中的位置。

d91fe543b094b5e39b4774e5fac80724.png

Servlet在Web应用程序中的位置

Servlet的任务

Servlet 执行以下主要任务:

● 读取客户端(浏览器)发送的显式的数据。这包括网页上的HTML表单,或者也可以是来自自定义的HTTP客户端程序的表单。

● 读取客户端(浏览器)发送的隐式的HTTP请求数据。这包括cookies、媒体类型和浏览器能理解的压缩格式等等。

● 处理数据并生成结果。这个过程可能需要访问数据库,执行RMI或CORBA调用,调用其它Web服务,或者直接计算得出相应的响应。

● 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML或XML)、二进制文件(GIF图像)、Excel等。

● 发送隐式的HTTP响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如HTML),设置cookies和缓存参数,以及其他类似的任务。

使用Eclipse创建Servlet

dbee9d63b1ee45336a807979feba126e.png

创建Servlet非常的简单,只需要使自定义类继承javax.servet.http.HttpServlet类并重写其中的service方法即可。Eclipse开发工具为了方便我们开发Servlet,提供了创建Servlet的功能,现在为大家介绍如何使用Eclipse创建一个Servlet并在浏览器中访问。

1)打开Eclipse,选择JavaEE视图。在菜单栏中点击File,选择New-other,在Web目录下找到并选择Dynamic Web Project,弹出如图1.24所示的对话框。

2)在Project name中填入项目名称:xdl_servlet_demo,Target runtime选择已经配置好的Tomcat服务器Tomcat8.5,其他选项保持默认,然后点击Finish。Eclipse会自动创建如图1.25所示的目录结构。

3)鼠标右键src目录,在弹出的菜单中选择New-Servlet,将弹出如图1.26所示的对话框。在该对话框中,填入Java Package为com.xdl.servlet,Class name填写为MyServlet,其它选项保持默认,然后点击Finish。

4e7a49cfd860ffdab6c5003f7fb77cbf.png

Eclipse创建动态Web工程的目录结构

b9a9a46ce58e821e4dd931eaf64bb4fb.png

Create Servet对话框

此时在src目录下,Eclipse就会为我们自动创建com.xdl.servlet包,并创建一个继承javax.servlet.http.HttpServlet类的Servlet。我们打开MyServlet类的源代码并做一些修改,在其中的doGet方法中添加了一行代码,使我们打开浏览器访问这个Servlet时能在浏览器的页面中显示Hello World!。修改后的MyServlet类的完整代码如下:

package com.xdl.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/MyServlet")

public class MyServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public MyServlet() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.getWriter().write("Hello World!");

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

注意,在这段代码中,使用了Servlet3.0后新增的注解@WebServlet("/MyServlet"),该注解的作用是用于配置Servlet。但是在Servlet3.0之前是需要使用配置文件web.xml来配置Servlet的。关于Servlet的注解将在下一节进行讲解,现在我们来运行一下刚刚创建的Servlet。

4)在项目名上单击鼠标右键,在弹出的菜单中选择Run as-Run on Server,然后在弹出的对话框中选择在Eclipse中配置的Tomcat服务器,然后点击Finish即可将项目部署到Tomcat服务器中并启动Tomcat服务器。Tomcat服务器启动完成后,打开浏览器输入localhost:8080/xdl_servlet_demo/MyServlet,如果没有错误将显示如图1.27所示的内容。

161b72a592206bc8e1281f4681c7820d.png

网页版Hello World!

配置Servlet

要使Servlet对象正常地运行,需要进行适当的配置,以告知Web容器(Web服务器)哪一个请求调用哪一个Servlet对象进行处理,对Servlet起到一个注册的作用。在Servlet3.0后,推荐使用注解的方式对Servlet进行配置,所以使用Eclipse创建Servlet会默认使用注解的方式配置Servlet。但是对于一些第三方的类或接口,是无法使用注解的方式进行配置的,这时就需要使用配置文件进行配置了。当然,在Servlet3.0后使用注解和配置文件都是可行的,接下来我们首先介绍配置文件的使用方式,然后再为大家介绍注解的使用方式。

● 使用配置文件web.xml配置Servlet

使用配置文件的方式是Servlet经典的配置方式,方法如下:

打开项目中WEB-INF目录下的web.xml文件(如果没有该文件,请使用鼠标右键点击工程目录中的Deployment Deor,在弹出的菜单中选择Generate Deployment Deor Stub选项,即可在WEB-INF目录下生成web.xml文件),在其中的web-aap标签中添加子标签和。例如:

MyServlet

com.xdl.servlet.MyServlet

MyServlet

/myservlet.do

其中servlet-name指定的是Servlet的名字,作用域是整个web.xml中,所以在同一个web.xml文件中不能出现两组servlet-name名字相同的servlet标签,servlet-class指定的是Servlet类的包名加类名,在servlet-mapping中设置的servlet-name指定的是要映射的Servlet的名字,需要正确的配置为已经在servlet标签中配置的servlet-name,而url-pattern指定的是请求路径,表示客户端使用该路径即可访问配置的Servlet。

● 使用注解annotation配置Servlet

使用注解的方式配置Servlet是Servlet3.0后新增加的功能,所以在Servlet3.0版本之前是不能使用注解的方式来配置servlet的,使用注解的方式来配置Servlet非常简单,只需要在类前加入@WebServlet注解即可。例如:

@WebServlet("/myservlet.do")

public class MyServlet extends HttpServlet{

...

}

只需要使用@WebServet注解即可给当前的类注册为Servlet,然后传入一个URL即可配置请求地址。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值