博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识Java Servlet
阅读量:6279 次
发布时间:2019-06-22

本文共 1887 字,大约阅读时间需要 6 分钟。

Java Servlet是什么?

Servlet的本质就是一个Java接口,之所以能生成动态的Web内容,是因为对客户的一个HTTP请求,Servlet通过接口这个规范重写了其中的方法,然后Web服务器通过这些反馈给客户端。所以Servlet并不直接和客户端打交道,我们需要一个Web服务器如Tomcat,是Web服务器完成与客户的监听、消息的传输等工作。Servlet的运行需要在web.xml中进行描述和注册。如配置Servlet的类,初始化的参数,不同的URL映射到对应的Servlet,还有过滤等功能。所以Servlet类似其他CGI技术。

 

Servlet的方法

Servlet由javax.servlet和javax.servlet.http两个包构成(在Tomcat安装目录的lib有servlet-api.jar)。servlet包中定义了Servlet类必须实现和拓展的通用接口和类,http包定义了采用HTTP通信的HttpServlet类。

Servlet接口有5个方法:

init(ServletConfig config)初始化一个Servlet类实例,在一个生命周期中此方法只被调用一次。

service(ServletRequest req,ServletResponse res),用于处理用户请求,可以执行多次,每个请求都会执行一次service()方法。所以重写这个方法需要保证线程安全性。因为一个Servlet实例可以同时服务多个客户请求。

destroy()终止Servlet服务,一个生命周期执行一次。

getServletConfig()获取ServletConfig对象,包含初始化参数和ServletContext对象。

getServletInfo()返回一个String对象,包含Servlet相关信息。

 

Servlet程序的编译运行

可以直接将编译好的文件放入tomcat安装目录下的webapps,可以先用ROOT文件夹。然后重写web.xml文件对Servlet进行配置。

web.xml文件的主要标识:

<servlet-name>是名字,可以随便起,要和<servlet-mapping>里面的名字一致。

<servlet-class>是要调用的Class文件,默认是在/classes文件夹下,一定要与对应的Class文件名一致。

<init-param>Servlet初始化的参数,有<param-name>和<param-value>这两个对应了一个key-value参数。通过更改这里的参数就不需要修改Servlet的代码。

<load_on_startup>用于指定加载Servlet的优先权,数字小的先加载。

<servlet-mapping>是对Servlet的访问路径的映射,<servlet-name>与前面的名字一致,通过<url-pattern>的URL路径来标识地址栏输入的路径。为什么需要有servlet-mapping呢?因为通过它可以使用通配符来调用对应的servlet-class。

放好编译文件,写好XML配置文件,就可以打开Tomcat服务器,然后通过浏览器调用Servlet程序了。浏览器地址后缀是<url-pattern>的内容。

当然更方便的是使用Eclipse等IDE集成Tomcat来实现这些功能。

下面是一份参考的写法:

1 
2 3
HelloWorld
4
HelloWorld
5
6
user
7
alex
8
9
10
address
11
http://www.baidu.com
12
13
1
14 15
16 17
18
HelloWorld
19
/servlet/*
20

 

转载于:https://www.cnblogs.com/-Chamgin/p/9195419.html

你可能感兴趣的文章
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
css面试题
查看>>
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>