博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb学习总结第四篇--Servlet开发
阅读量:4994 次
发布时间:2019-06-12

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

Servlet开发

用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求。服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应。浏览器收到回应,再把回应的内容显示出来。这种请求—响应模式就是典型的Web应用程序访问过程。

JavaWeb应用程序中所有的请求—响应都是由Servlet完成的。Servlet是JavaWeb的核心程序,所有的网址最终都交给Servlet处理。Servlet并没有main之类的执行方法。当用户访问服务器的时候,Tomcat是通过调用Servlet的某些方法来完成整个处理过程的。

Servlet是什么

一个Servlet程序就是一个实现了特殊接口的Java类,它由支持Servlet的Web服务器调用和启动运行。一个Servlet程序负责处理它所对应的一个或一组URL地址的访问请求,并接收客户端发出的访问请求信息和产生响应内容。

 

Servlet程序可以完成普通Java程序所能完成的大多数任务:

  • 获取客户端通过HTML的FORM表单提交的数据和URL后面的参数信息
  • 创建对客户端的响应信息内容
  • 访问服务器端的文件系统
  • 连接数据库并开发基于数据库的应用
  • 调用其它的Java类

Servlet工作流程

浏览器提交的请求是遵循HTTP协议的文本。这段文本由服务器也就是Tomcat接收并解析,封装成了HttpServletRequest类型的request对象。所有的HTTP头数据都可以通过request相应的方法查询到。Tomcat同时把输出流封装成为HttpServletResponse类型的response对象,通过设置response对象可以控制输出的内容。在请求—响应的这个过程中,Tomcat把request对象、response对象作为参数,调用Servlet的相应方法,例如doPost(request,response)、doGet(request,response)等。

Servlet接口

Servlet是一种实现了javax.servlet.Servlet接口的类。Servlet接口规定了特定的方法来处理特定的请求。Servlet规范是建立在HTTP规范基础上的。HTTP 1.1 规范支持OPTIONS、GET、POST、HEAD、PUT、DELETE、TRACE等7中访问方式,其中最常用的就是GET和POST了。

GET:表示查询信息,URL中可以附带少量的参数信息,但是URL总长度不能超过255个字符,并且参数会显示在浏览器地址栏。

POST:表示提交信息,一般用于提交大数据信息或者文件,提交的内容不受长度限制,并且不会显示在浏览器地址栏中。

 FirstServlet

在了解了Servlet基础知识之后,我们可以试着编写Servlet程序了。首先我们得认识一下Servlet的常用方法

1 import javax.servlet.*; 2 import java.io.IOException; 3  4 /** 5  * Created by Administrator on 2015/6/2. 6  */ 7  8 /* 9  *查看Servlet接口中的方法10  */11 public class AServlet implements Servlet {12 13     @Override14     public void destroy() {15         System.out.println("destroy()....");16     }17 18     @Override19     public ServletConfig getServletConfig() {20         System.out.println("getServletConfig()....");21         return null;22     }23 24     @Override25     public String getServletInfo() {26         System.out.println("getServletInfo()....");27         return null;28     }29 30     @Override31     public void init(ServletConfig servletConfig) throws ServletException{32         System.out.println("init()....");33     }34 35     @Override36     public void service(ServletRequest request,ServletResponse response)37             throws ServletException,IOException {38         System.out.println("service()....");39     }40 }

注意:Servlet的生命周期方法

接下来,我们写一个简单的Servlet程序,并试着编译运行。
1 import javax.servlet.ServletException; 2 import javax.servlet.http.HttpServlet; 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 import java.io.IOException; 6 import java.io.PrintWriter; 7  8 /** 9  * Created by Administrator on 2015/6/2.10  */11 public class FirstServlet extends HttpServlet{12 13     public void service(HttpServletRequest request,HttpServletResponse response)14         throws ServletException,IOException{15 16         PrintWriter out = response.getWriter();17         out.println("");18         out.println("www.baidu.com
");19 out.println("
" + new java.util.Date() + "
");20 out.println("");21 }22 }

 

配置<servlet>

我们只有servlet类文件还不行,因为要让Web服务器知道浏览器怎么访问这个Servlet,也就是说需要配置Servlet的类文件与访问方式。这个配置在Web应用程序的描述文件web.xml里完成,配置如下:

 

1 
2
6 7
8
xxx
9
AServlet
10
11 12
13
xxx
14
/HelloServlet
15
16 17
18
yyy
19
FirstServlet
20
21 22
23
yyy
24
/FirstServlet
25
26

<servlet>和</servlet>分别为Servlet配置的开始标签和结束标签。中间的部分就是一个Servlet的配置信息。其中<servlet-name>与<servlet-class>属性分别为Servlet的名称和类名,都是必须配置的。<servlet-name>可以是任意的字符串,但是必须保证该名称在web.xml里唯一。

1 
2
message
3
Welcome to FirstServlet
4
5
1

使用<init-param>标签可以配置一个初始化参数,包括一个参数名称和一个参数值。一个Servlet可以配置多个初始化参数。Servlet中可以使用方法getServletContext().getInitParam(String paramName)来取得配置的初始化参数值。

标签<load-on-startup>配置该Servlet的加载方式,可选值为0和1,。如果配置为1,Tomcat在启动的时候就加载该Servlet,否则,Tomcat会在第一次请求该Servlet的时候才加载。

编译运行Servlet

转载于:https://www.cnblogs.com/BaiYiShaoNian/p/4548118.html

你可能感兴趣的文章
DHCP Option 60 认识
查看>>
浅析连续子向量,子数组和(一维,二维)问题
查看>>
C/C++中各种类型int、long、double、char表示范围(最大最小值)
查看>>
Linux环境下Eclipse + Tomcat + MySQL 配置J2EE开发环境的方法
查看>>
机器学习实战:第九章 树回归
查看>>
while(~scanf("%d %d",&a,&b))和while(scanf("%d %d",&a,&b)!=EOF)
查看>>
使用vs code开发纸壳CMS并启用Razor智能提示
查看>>
动态投资回收期Pt小于计算期n
查看>>
Python模拟登入豆瓣网,并爬取小组信息
查看>>
初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面
查看>>
@import与link的区别与选择
查看>>
ORA-14411 该 DDL 不能与其他 DDL 并行运行处理办法
查看>>
C#筛法求出范围内的所有质数
查看>>
程序员常用的几款软件
查看>>
noi2014 起床困难综合症
查看>>
.NET ->> 分享一个字符串模糊匹配指数的方法
查看>>
HDU2907凸包+凹面
查看>>
BZOJ 1600: [Usaco2008 Oct]建造栅栏
查看>>
BZOJ 1574: [Usaco2009 Jan]地震损坏Damage
查看>>
Tiny4412 LED 程序
查看>>