Servlet概述(一)

动态网站概述

动态网站技术

首先明确动态网站的概念。动态网站,并不是指具有动画功能的网站,而是指基于数据库架构的网站,一般由大量的动态网页(如JSP)、后台处理程序(Servlet)和用于数据库组成。所谓动态页面,本质上与网页上的各种动画、滚动字幕等视觉上的“动态效果”无关。动态网页可以是纯文字内容,也可以包括各种动画的内容,这些只是网页具体内容的表现形式:无论网页是否具有动态效果,采用动态网站技术生成的网页都成为动态网页。

动态网站一般具有一下几个特点:

  • 交互性
  • 自动更新
  • 随机性

动态网站一般采用动静结合的原则:网站中内容频繁更新的可采用动态网页技术;网站中内容不需要更新的则可采用静态网页进行显示。通常一个网站既包含动态网页也包换静态网页。

目前被广泛应用的动态网站技术主要有以下三种:

  • PHP(Hypertext Preprocessor):超文本预处理器,其语法大量借鉴了C、Java、Perl等语言,只需要很少的编程知识就能使用PHP建立一个真正交互的Web站点。由于PHP开放源代码,并且是免费的,所以非常流行,是当今Internet上最为火热的脚本语言之一。
  • ASP(Active Server Pages):一种类似HTML、Script与CGI结合体的技术,没有提供自己专门的编程语言,允许用户使用许多已有的脚本语言编写ASP应用程序。单ASP技术局限于微软的操作系统平台之上,主要工作环境为微软的IIS应用程序结构,而且ASP技术很难实现在跨平台Web服务器上工作,因此一般只适合一些中小型站点。但目前由ASP升级演变而来的ASP.NET可支持大型网站的开发。
  • JSP(Java Server Pages):基于Java Servlet 以及整个Java体系的Web开发技术。JSP是由Sun公司于1999年6月新推出的新技术,它与ASP有一定的相似之处,但JSP能在大部分的服务器上运行,而且其应用程序易于维护和管理,安全性方面也被认为是这三种基本动态网站技术中最好的。

Servlet基本知识

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

Servlet是Java EE架构中的关键组成,Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的Web服务器端编程技术,主要用于在Web服务器端获得客户端的访问请求信息并动态生成对客户端的响应信息。此外,Servlet也是JSP技术的基础。

Servlet程序具有以下特点:

  • 高效
  • 方便
  • 功能强大
  • 良好的可移植性

第一个Servlet

编写Servlet需要遵循以下规范:

  • 创建Servlet时,需要继承HttpServlet类。同时需要导入Servlet API的两个包:javax.servlet和javax.servelet.http。
  • 根据数据的发送方式,覆盖doGet()、doPost()方法之一或全部。doGet()和doPost()都有两个参数,分别为HttpServletRequest和HttpServletResponse类型。
    如在浏览器中直接输入地址来访问Servlet资源,属于使用Get方式访问。

示例 使用Servlet输出“Hello World!”页面
创建一个类文件HelloServlet.java,编写代码如下

public class HelloServlet extends HttpServlet
{
	//重写doGet()
	public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
		//设置响应到客户端的文本类型为HTML
		response.setContentType("text/html");
		//获取输出流
		PrintWriter out = response.getWriter();
		out.println("Hello World!");
	}
}

上述代码会向客户端浏览器中打印“Hello World!”信息。通过response对象的getWriter()方法可以获取向客户端输出信息的输出流,调用输出流的println()方法可以获取向客户端浏览器中打印消息。

注意:Servlet代码中,没有关闭PrintWriter的代码,即“out.close()”,通常情况下,任何输入输出流用完都是需要关闭的,否则会发生内存溢出,但是在Servlet中不是一定要关闭的,因为response会做关闭操作,而且如果工程中有过滤器,则需要考虑过滤器是否有影响。

在web.xml中配置Servlet,注册此Servlet信息的代码如下:`

<servlet>
	<display-name>Hello</display-name>
	<!--Servlet的名称-->
	<servlet-name>Hello</servlet-name>
	<!--所配置的Servlet类的完整类路径-->
	<servlet-class>com.dh.ch01.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
	<!--前面配置的Servlet名称-->
	<servlet-name>Hello</servlet-name>
	<!--访问当前Servlet的URL-->
	<url-pattern>/hello</url-pattern>
</servlet-mapping>

上述配置信息中,需要注意以下几个方面:

  • Servlet别名,即< servlet-name >…< /servlet-name >之间的命名可以随意命名,但要遵循命名规范。
  • < servlet >和< servlet-mapping >元素可以配对出现,通过Servlet别名进行匹配。< servlet >元素也可以单独出现,通常用于初始化操作。
  • URL引用,即< url-pattern >…< /url-pattern >之间的命名通常以“/”开头。

启动Tomcat,在IE中访问http://localhost:8080/ch01/hello,运行结果如下图所示
在这qedq 里插入图片描述
上述示例中的访问URL为"http://localhost:8080/ch01/hello",其中http为超文本传输协议,localhost代表要访问的机器IP,因为是本机,所以可以写为localhost,8080代表Tomcat绑定的端口号,ch01代表Servlet所在的工程部署名称,/hello对应Servlet配置的url-pattern。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值