JSP&Servlet学习笔记(2)HelloServlet解析

注:学习此篇教程之前请确定完成Servlet开发环境的配置。

一、文件组织

首先看一下之前在Eclipse中新建的Dynamic Web Project目录结构:


重要的目录说明:
WEB-INF:此目录中存在的资源项目不会被列入应用程序根目录直接访问的项。
WEB-INF/web.xml:部署描述文件(需要手工创建)。
WEB-INF/classes:放置自定义的类(.class),必须包括包结构。
WEB-INF/lib:放置应用程序用到的JAR文件。

二、部署
1)使用@@WebServlet
在Servlet3.0中,可以使用标注(Annotation)来告知容器哪些Servlet会提供服务以及额外信息。
例如
@WebServlet("/Hello.view")
public class HelloServlet extends HttpServlet
只要在Servlet上设置@WebServlet,容器就会自动读取当中的信息。上面的例子告诉容器,如果请求的URL是
"/hello.view",则由HelloServlet的实例来提供服务。


2)使用web.xml
使用web.xml是更加通用的部署方法,会比较麻烦一些。
web.xml中的设置会覆盖Servlet中的标注设置。
还是基于之前的例子,我们用web.xml来部署一下。


在WEB-INF中新建web.xml,敲入下面的代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app  version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web-app>


解释一下几个重要的标签:
<servlet>元素定义了一个servlet实例。<servlet>元素必须包含了<servlet-name>和<servlet-class>两个子元素,也可能包括其他初始化参数。

 <servlet-name>元素定义了servlet实例唯一的名字。每一个servlet实例必须有唯一的名字,这个名字仅用来配合对此实例的URL映射,所以不一定要和servlet类或servlet的URL一致。

 <servlet-class>元素告诉servlet容器如何构建一个servlet类的实例。<servlet-class>元素包含两部分,包含servlet的package名和servlet类的类名。

<servlet-mapping>用于定义映射。

<load-on-startup>1</load-on-startup>表示在应用启动的时候就将Servlet类载入。

设置完成之后,我们就只能通过“http://localhost:8080/ServletTest1/Hello”来访问Servlet而不是之前的Hello.view,因为@WebServlet被覆盖掉了。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值