博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet入门(五)request和response对象
阅读量:3699 次
发布时间:2019-05-21

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

前言

      本章学习servlet中的request、response对象

方法

1.概念

相信大家在之前的章节已经看到了,我用到了request对象获取前台传递过来的数据:

String username = request.getParameter("username");String password = request.getParameter("password");

服务器在收到浏览器发出的请求后,会自动创建一个request对象用来保存本次请求的所有相关信息~

2.常用方法

在说这个之前,还是和Java刚开始讲String类的时候一样,需要大家在网上下载相关的API,也就是JavaEE的API文档!

网址:

大家把下面的这个包下载好之后,解压缩,找到.\java_ee_sdk-8\glassfish5\docs\api\javaee-full文件路径,点击index.html即可。

 

下面我们来看一下常用的request对象的方法吧!

  •  String getParameter(String name) : 该方法用来获取前台页面name属性传递的表单值,只能获取单个值(text、password)

  • String[] getParameterValues(String name):该方法用来获取前台页面name属性传递的表单值,可获取多个值(checkbox)

  • void setCharacterEncoding(String env) throws UnsupportedEncodingException 设置请求编码

  • void setAttribute(String name,Object o):设置名字为name的request的参数值

  • Object getAttribute(String name):返回由name指定的属性值

--关于request对象的其他方法,我们今后用到的时候在进行总结。

接下来我们来看一下response对象的方法吧!

因为response对象的方法不是那么常用,所以我就举个例子

  • void sendError(int sc,String msg) throws IOException:该方法用来向客户端发送错误信息

Servlet代码中加入该方法后的效果是什么呢?请看:

response.sendError(404,"This Page is Not Found");

那么你的页面发送请求后会出现如下错误提示:

是不是感觉很熟悉啊!

其他

1.设置请求转发

*        作用:实现多个servlet联动操作处理请求,这样避免代码冗余,让servlet的职责更加明确。

*        使用:
*                req.getRequestDispatcher("要转发的地址").forward(req, resp);
*                地址:相对路径,直接书写servlet的别名即可。
*        特点:
*            一次请求,浏览器地址栏信息不改变。

相信大家发现了之前写的代码中出现了如下代码:

request.getRequestDispatcher("/success.jsp").forward(request, response);

这句代码是一个固定的格式,用来设置请求转发。作用是servlet处理完请求之后,将跳转到其他页面或者servlet

2.设置重定向

Servlet处理完后跳转页面或者Servlet还有另外一种方法,那就是重定向

*        解决了表单重复提交的问题,以及当前servlet无法处理的请求的问题。

*        使用:
*            resp.sendRedirect(String uri);
*        示例:
*            resp.sendRedirect("/login.jsp");
*        特点:
*            两次请求,两个request对象。
*            浏览器地址栏信息改变

response.sendRedirect("/login.jsp");

其作用效果和请求转发一样!

3.请求转发和重定向的区别

我在其他博主那里找到了有价值的信息,传送门:

总结:

  • 如果请求中有表单数据,而数据又比较重要,不能重复提交,建议使用重定向。
  • 如果请求被Servlet接收后,无法进行处理,建议使用重定向定位到可以处理的资源。    
  • 其他情况建议使用请求转发。

4.request对象作用域

request对象用于解决一次请求内的数据共享,也就是说在一次请求内只有一个request对象并且这次请求内的所有操作共享同一个request

转载地址:http://fuacn.baihongyu.com/

你可能感兴趣的文章
Vue.js 框架基础笔记
查看>>
大一暑假留校总结
查看>>
哈夫曼编码的理解以及简单实现
查看>>
马踏棋盘(从低效到高效)
查看>>
初识Linux内核
查看>>
系统调用的概念及原理
查看>>
zabbix_agent5.0实现自动注册
查看>>
zabbix监控tomcat之Zabbix-java-gateway启动报错
查看>>
oracle-plsql执行脚本显示中文出现乱码
查看>>
keepalived实现Mysql高可用
查看>>
Spring Boot整合Thymeleaf模板
查看>>
Spring Boot整合FreeMarker模板
查看>>
IDEA如何自动生成 serialVersionUID 的设置
查看>>
git关联远程仓库--码云
查看>>
SpringBoot的单/多文件上传
查看>>
SQL语句大全
查看>>
SpringBoot安全管理 ——模块3:OAuth 2的简单应用
查看>>
SpringBoot消息服务 —— SpringBoot整合ActiveMQ
查看>>
Java 虚拟机 (JVM)系列一
查看>>
mybatis 中插入数据,如何获取到新增数据的主键 id
查看>>