第二阶段(二)——Servlet总结

一、Servlet概述

1、什么是Servlet
Servlet是由SUN公司提供的一门动态Web资源开发技术
Servlet本质是一段Java程序,但和Java程序不同的是,Servlet程序无法独立运行,需要放在服务器中,由服务器调用才可以执行!

运行在服务器端的Servlet程序的作用是:对服务器接收过来的请求进行处理

二、开发Servlet程序

1、开发Servlet程序的步骤
(1)写一个类,并且实现一个Servlet接口,并实现中的方法
Servlet
|-- GenericServlet
|-- HttpServlet
(2)在web.xml文件中配置Servlet对外访问的路径,再将Servlet程序发布到服务器中运行
2、使用Eclipse创建一个Web项目
3、使用Eclipse创建一个Servlet程序
4、运行、测试Servlet程序
5、Servlet在Web.xml文件中的配置

三、Servlet调用过程

参考《Servlet调用过程图》

四、request对象获取请求参数

1、什么是请求参数
浏览器发送给服务器的数据称之为请求参数
比如:通过表单向服务器提交数据
或者 在浏览器地址栏url地址的后面拼接参数
http://localhost:8080/day08-reqres/TestParam03?username=张飞&psw=123…

2、如何获取请求参数
request.getParameter(String paramName);
– 针对单值参数,根据请求参数的名字,返回对应的value值。
– 如果获取的参数有多个值,只会返回第一个值
– 如果获取一个不存在的参数,返回值为null
request.getParameterValues(String paramName);
– 根据请求参数的名字,返回对应的所有value值组成的数组
– 如果获取的参数只有一个值,返回的仍然是一个数组(只不过数组的长度为1)
– 如果获取一个不存在的参数,返回值为null

3、如何解决获取请求参数时的乱码问题
(1)如果是GET提交,并且tomcat服务器版本为8.0或8.0以上版本,获取GET提交的参数是没有乱码的,所以不用处理。
(2)如果是GET提交,并且tomcat服务器版本为7.0或者7.0以下的版本,获取GET提交的参数是有乱码的,解决方法参考讲义!
(3)如果是POST提交,无论是哪个版本的tomcat服务器,获取POST提交的参数都有乱码问题,解决方法是:
在任何获取参数的代码之前添加一行代码:
request.setCharacterEncoding(“utf-8”);
在这一行的下面再获取POST提交的参数就没有乱码问题了。

五、request实现请求转发

1、什么是请求转发?
当浏览器访问服务器中的某一个资源(A),资源A没有对请求进行响应,而是将请求转交给另外一个资源(B),由资源B将对请求进行响应的过程叫做请求转发!

2、请求转发有什么特点
(1)是一次请求,一次响应
(2)请求转发前后,地址栏地址不会发生变化(A转发到B,从访问A开始,到B响应结束,地址栏地址一直指向A)
(3)请求转发只能是同一个Web应用内部的资源跳转(A转发到B,A和B必须属于同一个Web应用)
(4)和域对象配合,在转发时,可以带数据到目的地(A转发到B,A可以带数据给B)

3、如何实现请求转发?
request.getRequestDispatcher(所转发到资源的地址).forward(req,res);

六、作为域对象使用

request域:是指在request对象内部保存了一个map集合,利用这个map集合可以在一次请求范围内共享数据
A转发到B, 在转发之前, 可以往request对象的map集合中存入数据:
	request.setAttribute("name", "张三");
再进行转发, 在转发时, request及request中的map集合里的数据也会一并带到所转发的资源
	request.getRequestDispatcher(转发到资源的路径).forward(req,resp);
再转发到B之后, 可以在B中将request的map集合中的数据取出来
	String name = (String)request.getAttribute("name");

request域对象三大特征:
(1)生命周期: 在服务器调用service处理请求之前,会创建request对象,在响应结束时,销毁request对象。
(2)作用范围: 一次请求范围内, 可以通过request带数据到目的地
(3)主要功能: 和请求转发配置使用, 带数据到目的地
	Servlet中: 将请求处理的结果存入request域中,转发带到JSP
	JSP中: 将从servlet中带过来的数据, 从request域中取出来, 在jsp中进行响应

七、response实现重定向

重定向的特点:
(1)两次请求,两次响应
(2)重定向前后,地址栏地址会发生变化(A重定向到B,重定向之前,地址栏地址指向A,重定向之后,地址栏地址指向B)
(3)重定向没有显示,参与重定向的两个资源,可以是同一个Web应用程序;也可以是不同的Web应用程序,甚至可以来自不同的服务器
(4)转发可以和request域对象配合使用,带数据到目的地,
	但重定向.,不能配合request域带数据到目的地(因为是两次请求)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值