JavaWeb——Servlet(详细介绍)

什么是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/ServletDemo01icon-default.png?t=N7T8http://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)方法可以通过相对路径获得绝对路径,然后就可以同输入流来读资源。(直接使用输入流是不可以的,因为其相对的路径是jdkbin目录)

步骤跟方式一相同都是创建配置文件。

在代码上就有不同的地方了

结果也是一样的

到此Servlet差不多就结束了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值