持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情
一、处理请求
在Web程序设计中,客户端以表单方式向服务器提交数据是最常见的方法。表单数据的提交方法有两种。
Servlet会自动将以上两种方法得到的数据进行处理,对于Post方法或Get方法提交的数据,Servlet的处理方法是一样的,用户只要简单地调用HttpServletRequest的getParameter方法,给出变量名称即可取得该变量的值。需要注意的是,变量的名称是大小写敏感的。当请求的变量不存在时,将会返回NULL。
二、编写响应HTTP请求的Servlet只需要两步:
(1)创建一个扩展了javax.servlet.http.HttpServlet接口的类。javax.servlet.http.HttpServlet接口是javax.servlet.GenericServlet的扩展接口,它包含了分析HTTP请求Header和将客户端信息打包到javax.servlet.http.HttpServletRequest类中的相关代码。
(2)重写Servlet组件的doGet或doPost方法实现对HTTP请求信息的动态响应。
三、生成响应
(1)Servlet的核心职责就是根据客户端的请求来生成动态响应。
在ServletResponse接口中定义了一系列与生成响应结果相关的方法。
(2)编码类型
ServletResponse中响应正文的默认MIME类型为text/plain,即纯文本类型;而HttpServletResponse中响应正文的默认MIME类型为text/html,即HTML文档类型。可以通过调用getContentType方法获得当前响应正文的MIME类型,或者通过调用setContentType(String type)来设置当前响应正文的MIME类型。
常用的MIME类型:
text/html
text/plain
image/jpeg
image/jpeg
(3)设置响应的MIME类型
通过调用setContentType(String type),Servlet可以向浏览器返回非HTML文件,比如Adobe PDF和Microsoft Word。使用正确的MIME类型能够保证这些非HTML文件被正确的插件或外部程序处理显示。 PDF文件的MIME类型是application/pdf。如果需要Servlet返回PDF文档,则需要将response对象中header的content类型设置成application/pdf。代码如下:
res.setContentType("application/pdf");
若要返回一个Microsoft Word文档,就要将response对象的content类型设置成application/msword。代码如下:
res.setContentType("application/msword");
如果是一个Excel文档,则使用MIME类型application/vnd.ms-excel。其中vnd表示该应用程序的制造者,必须将它包含在MIME类型里才能够打开该类型的文档。代码如下:
res.setContentType("application/vnd.ms-excel");
以上内容就是在编写Servlet时关于请求处理与响应的编写。