什么是Servlet
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
Servlet的工作模式
- 允许程序员注册一个类,在 Tomcat 收到的某个特定的 HTTP 请求的时候,执行这个类中的一些代码。
- 帮助程序员解析 HTTP 请求,把 HTTP 请求从一个字符串解析成一个 HttpRequest 对象。
- 帮助程序员构造 HTTP 响应,程序员只要给指定的 HttpResponse 对象填写一些属性字段,Servlet 就会自动的按照 HTTP 协议的方式构造出一个 HTTP 响应字符串,并通过 Socket 编写返回给客户端。
Servlet程序创建的步骤
1、创建项目
第一步:使用IDEA创建一个Java Enterprise项目。
创建好的项目如下
介绍一下目录结构
2、Servlet的三种创建方式
第一种:手动通过普通Java类和手动注册Servlet。
第二种:通过Servlet菜单。
第三种:普通Java类和注解结合,service代替doGet()和doPost()方法。
GET:
通过地址栏携带参数
网页中的链接全部都是GET
POST:参数不会显示
参数没有长度限制
Service:
是一个程序的入口,相当于main()
在HttpServlet的service方法源码中,通过不同的请求调用doXXX方法,所以不用覆盖service()方法,只用覆盖doXXX方法。
3、编写代码(第三种创建方式)
- 创建一个ServletDemo01类,让他继承 HttpServlet
- 然后在ServletDemo01类中重写service方法
- 接着需要给ServletDemo01加上注解@WebServlet("/ServletDemo01")
@webServlet 用于将一个类声明为Servlet,该注解将会在部署时被容器处理。
4、验证程序
此时通过浏览器访问就可以看到程序实现的结果。http://localhost/webuser/ServletDemo01http://localhost/webuser/ServletDemo01
Servlet读取配置信息
1、先在web.xml中配置初始化信息
2、编写servlet程序
运行的结果
3、注解的方式
运行结果也是跟上面一样。
ServletContext对象
获取ServletContext对象
ServletContext(代表一个web应用(域))
方式一
request.getServletContext();
方式二 (HttpServlet继承)
this.getServletContext()
取得服务的相关信息System. out .println ( this .getServletContext (). getServerInfo ());获得 web 应用的根目录System. out .println ( this .getServletContext (). getContextPath ());
利用ServletContext读取资源文件
方式一:
1. 创建配置文件 ( properties )2. 利用 InputStream getResourceAsStream ( String path) (注意这里的 path 应该是发布后的如 /WEB-INF/classes )获得一个输入流 , 是相对于 web 应用的根目录3. 然后 用 我们以前学过的 Properties 来对文件中的键值(会 用到 load ( InputStream inStream ) 和 String getProperty ( String key) )
创建配置文件(properties)时,一定要在web包下创建
代码
运行结果
这样就获取到了资源文件了。
方式二
通过String getRealPath(String path)方法可以通过相对路径获得绝对路径,然后就可以同输入流来读资源。(直接使用输入流是不可以的,因为其相对的路径是jdk的bin目录)
步骤跟方式一相同都是创建配置文件。
在代码上就有不同的地方了
结果也是一样的
到此Servlet差不多就结束了。