当前位置: 首页 > news >正文

JavaWeb期末速成 Servlet

关键词:Servlet API 生命周期 处理请求 表单数据处理 发送响应

Servlet接口

Servlet接口是Servlet API中的基本接口,每个Servlet必须直接或间接实现该接口
该接口定义了如下5个方法:

void init(ServletConfig config)
void service(ServletRequest request, ServletResponse response)
void destroy()
ServletConfig getServletConfig()
String getServletInfo()

HttpServlet类

在HttpServlet类中增加了一个新的service()方法,格式如下:

protected void service(HttpServletRequest request,HttpServletResponse response)

在HttpServlet中针对不同的HTTP请求方法定义了不同的处理方法,如处理GET请求的doGet()格式如下:

protected void doGet(HttpServletRequest request,HttpServletResponse response) 

还定义了处理其他请求的方法,如处理POST请求的方法是doPost()


处理请求

GET方法POST方法
资源类型静态的或动态的动态的
数据类型文本文本或二进制数据
数据量般不超过255个字符没有限制
可见性数据是URL的一部分数据不是URL的一部分,作为请求的消息体送
数据缓存数据可在浏览器的URL历史中缓存数据不能在浏览器的URL历史中缓存

在客户端如果发生下面的事件,浏览器就向Web服务器发送一个HTTP请求。

  • 用户在浏览器的地址栏中输入URL并按回车键 GET
  • 用户点击了HTML页面中的超链接 GET
  • 用户在HTML页面中添写一个表单并提交 GET/POST

前两种方法向Web服务器发送的都是 GET请求。如果使用HTML表单发送请求可以通过method属性指定使用GET请求或POST请求

默认情况下使用表单发送的请求也是GET请求,如果发送POST请求,需要将method属性值指定为post,例如:

<form action="user-login" method="post">用户名:<input type="text" name="username" />密码:<input type="password" name="password" /><input type="submit"  value="登录">
</form>

请求参数传递和获取

请求参数是随请求一起发送到服务器的数据,它以“名/值”对的形式发送。POST请求,参数在数据区;GET请求,参数附加在URI后面

从客户端向服务器端传递请求参数有下面两种方法

  • 通过表单指定请求参数,每个表单域可以传递一个请求参数,这种方法适用于GET请求和POST请求。
  • 通过URL中的查询串指定请求参数,将参数名和值附加在请求URI后面,这种方法只适用于GET请求

使用HttpServletRequest中定义的方法检索这些参数:

  • String getParameter(String name)
  • String[] getParameterValues(String name)

向服务器发送GET请求,还可以将请求参数附加在请求URL的后面。例如,可以直接使用下面的URL访问LoginServet,而不需要通过表单提供参数:

http://localhost:8080/chapter02/user-login?username=admin&password=admin

这里,问号后面内容为请求参数名和参数值对,若有多个参数,中间用“&”符号分隔,参数名和参数值之间用等号(=)分隔。问号后面内容称为查询串(query string)


请求转发

可能需要将请求转发(forward)到其他资源。通过请求对象的getRequestDispatcher()得到RequestDispatcher对象,该对象称为请求转发器对象,格式如下:
RequestDispatcher getRequestDispatcher(String path)
调用RequestDispatcher对象的forward()方法:
void forward(ServletRequest request, ServletResponse response)


响应重定向

Servlet在对请求进行分析后,可能不直接向浏览器发送响应,而是向浏览器发送一个Location响应头,告诉浏览器访问其他资源,这称为响应重定向。
响应重定向是通过响应对象的sendRedirect()实现,格式如下:
public void sendRedirect(String location)
URL可以是绝对URL,也可以是相对URL。


状态码

状态码范围含义示例
100~199表示信息100表示服务器同意处理客户的请求
200~299表示请求成功200表示请求成功,204表示内容不存在
300~399表示重定向301表示页面移走了,304表示缓存的页面仍然有效
400~499表示客户的错误403表示禁止的页面,404表示页面没有找到
500~599表示服务器的错误500表示服务器内部错误,503表示以后再试

http://www.xdnf.cn/news/1010215.html

相关文章:

  • qemu-guest-agent详解
  • 亚马逊woot常见问题第三弹
  • LevelDB介绍和内部机制
  • CC工具箱使用指南:【面要素四至】
  • 深度学习5——循环神经网络
  • 智能PDU:从单一功能到多维度升级
  • 洛谷P4555 最长双回文串
  • Ntfs!NtfsFreeRestartTableIndex函数分析
  • 图片压缩工具类
  • Photoshop 2025 性能配置全攻略:硬件选购与软件优化指南
  • 医疗器械行业系统如何提升医疗器械企业的核心竞争力?
  • JavaWeb(Servlet预习)
  • CANopen转PROFINET网关应用:西门子S7-1500主站控制台达AS系列CANopen设备
  • 【金仓数据库征文】_KingbaseES V8R6 运维最佳实践
  • 报表工具顶尖对决系列 --- 文本数据源
  • 大数据学习(139)-数仓设计
  • 量化投资中的Alpha模型与Beta模型的结合
  • 基于鹅优化算法(GOOSE)和三次样条插值的机器人路径规划MATLAB完整实现方案
  • Linux系统详解
  • LeetCode 72. 编辑距离(Edit Distance)| 动态规划详解
  • 网络调试中的难题与破解:跨平台抓包方案实战对比与技巧分享(含Sniffmaster经验)
  • mapstruct中的@Mapper注解详解
  • linux日志工具Rsyslog
  • 【力扣 简单 C++】206. 反转链表
  • 网络的那些事——初级——路由策略
  • 数据库专家 OCP 认证培训:开启职业黄金赛道
  • 关于机器驾驶和人工驾驶的安全若干问题
  • 江苏艾立泰引领塑料包装绿色革命:闭环布局实现环保与经济效益双赢
  • 取得客运资格证后,可以从事哪些具体岗位?(如网约车、班线客车等)
  • 汇编语言深度指南:从基础到字符串操作