Servlet

Servlet

什么是ServLet

Sun公司制定的一种用来扩展web服务器的组件规范

404:资源不存在
405:service()方法名错误
500:服务器内部错误(程序有异常)

使用Servlet接收数据

servlet是如何接收表单数据的?

浏览器发出提交表单的请求,浏览器根据请求资源路径,建立与服务器的链接,浏览器将表单与其他相关数据,根据HTTP协议打包,将数据发送给服务器。

服务器接收请求之后,创建request和response对象,根据HTTP协议,将数据封装到request对象中,根据数据包中的请求资源路径,匹配到具体的servlet,实例化servlet,调用servlet中service()方法,将request和response对象传给service()方法.

程序员在service方法中,获取request对象中的数据,通过getParameter(“paramName”)来获取具体的表单中的数据。

servlet是如何将处理结果返回浏览器?

Servlet中的service()方法接收到response对象,在方法中将响应的内容封装到response对象中,当service()方法执行结束,服务器将response对象中的数据,根据HTTP协议封装到一个响应数据包中,并将该响应数据包发送给浏览器。

HTTP协议

什么是HTTP协议?

超文本传输协议,规定了浏览器与web服务器之间如何通信,以及通信的数据格式

浏览器与服务器的通讯过程

  1. 浏览器建立与服务器的链接
  2. 浏览器打包,向服务器发送请求数据包
  3. 服务器打包,向浏览器发送响应数据包
  4. 关闭链接

请求数据包的组成

请求行:请求方式 + 请求资源路径 + 协议版本
若干消息头
实体内容(只有请求内容为POST时,实体内容才会有数据)

消息头数据包的组成

状态行:协议类型 + 状态码 + 状态描述
若干消息头
实体内容

通过MyEclipse中的monitor抓取数据包,并查看数据包的结构。
浏览器 –monitor–> 服务器(tomcat) —> 根据资源路径

修改Tomcat配置

  1. 修改端口号
    tomcat/conf/server.xml

  2. 自动重写载入项目更新
    tomcat/conf/context.xml

<Content reloadeable="true">
  1. 显示项目的页面列表
    tomcat/conf/web.xml
<init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
</init-param>

改为:

<init-param>
    <param-name>listings</param-name>
    <param-value>true</param-value>
</init-param>

HttpServletRequest对象

getParameter("name")  获取请求参数,返回字符串,如果参数不存在,返回null
getParameterValues()    获取一个参数名多个值的参数(例如多选框的数据),返回字符串数组,如果不存在,返回null

HttpServletResponse对象

  • 设置对客户端的输出内容
  • 设置响应状态码
  • 设置浏览器的解码方式
  • 设置cookies
  • 实现重定向

getContentType(“text/html”) 设置文件类型
MIME类型:
html —— “text/html”
jpg —— “image/jpeg”

setCharacterEncoding(“”) 设置编码格式

处理请求参数中的乱码
当请求方式为POST时,在获取参数之前,request.setCharacterEncoding(“utf-8”)
当请求方式为GET时,服务器处理请求参数与POST不同。先获取编码,再重新编码。
String name = request.getParameter(“name”);
name = new String(name.getBytes(“ISO-8859-1”),”utf-8”);

请求方式

通过浏览器,如何发出请求?

  • 通过超链接
  • 地址栏直接输入URL
  • 提交表单
  • 通过JavaScript

以上操作中只有提交表单,并且method=”post”时,请求方式为POST请求,其他操作都是GET请求。
以超链接为例,如何向servlet中传递请求参数?

<a href="hello.do?name='hello'">访问servlet</a>

GET

当需要向服务器请求指定资源时使用的方法。
特点:请求参数会显示在浏览器的地址栏上。

POST

向服务器提交数据时使用的方法
特点:请求参数添加到实体内,可提交大量数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值