当前课程知识点:Web后端开发技术 > 第2章 Servlet技术基础 > 2.3 Servlet应用 > 2.3.1 处理超链接请求
欢迎大家回来继续学习
web后端开发技术
本小节我们将学习如何处理超链接请求
Servlet常用于处理与页面无关的
一些任务
比如处理
请求实现业务逻辑
返回结果
在代码层面上面
是在do post或do get的方法
体内完成这么三块代码的编写
第1块是用来处理请求
比如获取请求
参数
接下来进行业务逻辑的处理
包括对数据库的增删改查操作
最后这步是将结果返回给客户端
那么返回客户端的时候有几种选择
一种是直接向客户端输出字符
还有一种是做重定向
最后一种是做转发操作
那么对于这个请求
我们应该知道HTTP请求到底有几种方式
我们这里做了一个简单的归纳
第1种发送http请求的方式
就是在地址栏里面输入一个http地址
比如访问爱克生网站
我们需要在地址栏里面输入这样一个
地址
然后点击回车
那么这样就发送了一个请求
第2种方式是点击超链接
在中国慕课网站下面有这样一个链接
当我们把鼠标放在这个位置的时候
我会在地址栏里面看到这样一些地址信息
然后我点击这个链接
这就发送了一个超链接请求
那么我们这次课程讲解就是如何处理
这类的请求
第3类请求
就是from表单提交请求
同样在爱课程网站上面
我们当我们登录网站的时候需要添加
这样一些信息
当我们点击这个按钮以后
就发送了一个form表单的请求
以上我们发送HTTP请求的三种
方式
那么如何处理超链接请求呢
在处理超链接请求之前
我们应该知道超链接是怎么来书写
出来的
那么超链接是通过 a标签来实现的
在a标题当中有个href的属性
href属性
它的值包括了url
Url后边是一个问号
问号之后是各种参数
那么这个参数是由参数名和参数值所
构成的
中间使用等号
多个参数之间使用and符号进行
相连
那么这是一个超链接
我们看一个事例
这个超链接我们看到它 url是
link
Request
Servlet
然后是问号
参数是pageNo和 type
那么当我们在页面当中把鼠标放在
下一页位置的时候会在地址栏显示这样
一个地址信息
这样我们就完成了一个超链接的编写了
刚才超链接是一个相对地址
超链接在编写过程当中还可以把它
书写成绝对地址
我们看一下刚才相对地址的绝对地址
是什么样的
决对地址当中
它是由这么几个部分构成的
第1部分是有关的协议和主机
然后是上下文路径
这里边一定要注意上下文路径
包含斜线
接下来就是servlet路径
那么 servlet路径也包含它
前面斜线
Servlet路径之后是一个问号
紧跟着就是查询的字符串
就是刚才我们说的参数
这是一个绝对地址
那么我们在开发当中
编写超链接地址的时候
是使用绝对地址还是使用相对地址
这里建议大家要使用相对地址
便于我们的项目的移植
那么对于这样一个超链接请求到达
服务器以后
Servlet
接收到的请求如何处理请求
在这里这个请求会被包装成为
HTTPServlet
request
对象
那么在HTTP servlet
request结果当中就有了
处理请求的方法
这里面主要有三个方法
第1个方法叫做get
Parameter
获取指定的参数值
第2个方法叫做get
parameter
values
获取一组请求的参数值
也就是说参数带有多个值的时候
我们使用这个方法
当这个参数只有一个值的时候使用
这种方法
下面方法叫做get
premature names
它是用来获取所有的请求参数的名
那么我们看一下
刚才这个事例当中如何获取到请求的
参数
PageNo和type的值
这个代码编写起来应该是比较简单的
通过request
对象
get
parameter
然后pageNo和type就
可以得到这个值了
那么这个值返回值是一个
string类型的
这里面需要强调一下
我们一定要把这个名称对应在一起
这个名称是对应的
千万不要写错
写错了
那么我们就得不到参数值了
好
我们看一个事例
本节给大家演示一下Servlet
处理链接请求
首先我们建立一个JSP页面
为了我们整个项目的一致性
我把它建到我们的第02章文件夹
下面
在这个文件夹下面我们建立一个
JSP页面
叫做link.JSP
还是跟以前的注意一样
这里我要把它改成utf-8
保证我的中文不会出现问题
好
那么在我的包里当中我会有一个链接
这是写链接地址
然后我链接的名称就叫做下一页
那么链接地址我要给到一个
Servlet上去
Servlet
我管它叫做request
Servlet
那么它后面有参数
参数用问号隔开
比如说它有个参数叫做pageNo=2
然后如果有多个参数参数之间用与号隔开
比如说有个类型叫做mooc
好
这时候我的请求的地址就写好了
接下来我们去建立一下我们的
ServletJava文件
那么点击新建
我们选择Servlet
首先给他放在
哪个包下
我们放在hbunchapter02
这个包下
那么我给它起个名字就叫做
link
Request
Servlet
这么一个Servlet就可以了
点击finish
那么 Eclipse就会给我们
自动的把Servlet模板生成
那么在注解部分
这个就是我们请求的路径
然后因为我们链接过来的需要处理的
是get请求
所以说这里我们要重写doGet方法
已完成相关的功能
好
我们这里就开始写
为了保证中文不出问题
大家一般情况下可能要加上这样的
代码
叫做request点
Set character
Encoding就是页面的
编码方式
我们采用utf8的编码方式
同样当我给页面返回去的时候
我要设置一下
它的请求的类型叫做content
type
返回的类型
我们是text
html然后他的charset
也就是它的字符集也是utf8的
好
下面正式开始起接收我们的参数
首先第1个参数叫做page
number
我们定一个字符串变量
叫page
Number
我们用request对象
它的一个方法叫做get
parameter这个方法
好
那么这个方法里我需要传入一个
字符串
这个字符串一定要和这里的请求的
参数名称是一样的
叫做page
Number
好
那么这时候它就会接收
pageNo的值是二 赋给变量
同理我们去接收type的这个值
我们用到的是request点
get
Parameter
好
这里这个字符串传
type
这时候我就可以拿到我type这个
字符串所对应的值
mooc
好了
那么紧接着我想做什么
我就想把这两个值输出到页面
那么想要输出到页面
我们要用啊response这个
方法里面
这个对象里面有一个叫做get
writer这个方法
这个方法可以返回一个 print
writer这么一个对象
对象我给它起个名叫out
那么这个对象就可以往页面上进行
输出了
比如说我out print
我当前请求pageNo等于多少
我给它输出出来
好
out.print
我为了看得清楚
我这里给它加上一个页面的换行
所以说我直接在这里写了一个br标签
就是在页面当中换行
最后我再把我的
type类型给
输出了
我们的 type
这时候我们的代码就编写完了
接下来我们就运行这个代码
首先我们给它部署到我们的
Tomcat当中
好
在这里面我们已经部署进来启动
Tomcat
启东Tomcat
这是我要访问的时候访问我link.jsp
大家一定要注意
现在我 link.JSP
是在ch02这个文件夹下
所以说我这里的路径一定要写成ch
02
下面有一个link点
jsp就可以了
这时候我就可以访问到下一页
当我点击的时候大家可以看到
我这里有一个问题
因为我在这里面定义的路径是
link点JSP
而我现在访问的是02的ch02
下面的linkrequest
点Servlet
所以说它会出现这样的一个错误
那么这个修改也很好修改
我在这里给它变成一个相对路径就
可以了
好
我们重新运行一下
首先访问 link.jsp然后
点击下一页
这里就跑到了link
requestServlet
下面
我们就可以拿到pageNo
等于2
以及type等于mooc这样的
参数值
本小节我们就讲到这里
-1.0 导学
--1.0.1 导学
-1.1 Web应用开发概述
--1.1.3 测试
-1.2 准备Java Web应用开发环境
--1.2.2 测试
-1.3 任务实现:Hello World Web项目
--1.3.2 测试
-1.4 小结
--1.4.1 小结
-本课程所有代码
--课程参考代码
-2.0 导学
--2.0.1 导学
-2.1 Servlet概述
--2.1.3 测试
-2.2 创建Servlet
--2,2,3 作业
-2.3 Servlet应用
--2.3.4 测试
-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)
--2.4.3 测试
-2.5 ServletConfig接口
-2.6 ServletContext接口
-2.7 HttpServletRequest接口
--2.7.5 测验
-2.8 HttpServletResponse接口
--2.8.3 测试
-2.9 任务实现:某高校毕业生信息发布系统-简历添加
--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加
-2.10 小结
-动画演示:Java Web应用服务器处理客户端请求的过程
-3.0 导学
--3.0.1 导学
-3.1 Cookie技术
--3.1.3 测试
-3.2 Session技术
--3.2.2 Session技术-Session技术应用购物车
--3.2.3 测试
-3.3 URL重写与隐藏表单域
--3.3.2 测试
-3.4 任务实现:某高校毕业生信息发布系统-简历修改
--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改
-3.5 小结
--3.5.1 小结
-4.0 导学
-4.1 jsp概述
--4.1.2 测试
-4.2 脚本元素
--4.2.2 测试
-4.3 指令元素
--4.3.2 测试
-4.4 动作元素
--4.4.3 测试
-4.5 内置对象
--4.5.3 测试
-4.6 JavaBean
--4.6.3 测试
-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)
--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)
-4.8 小结
--4.8.1 小结
-5.0 导学
--5.0.2 测试
-5.1 el语法
--5.1.2 测试
-5.2 el隐含对象
--5.2.2 测试
-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.2 测试
-5.4 小结
--5.4.1 小结
-6.0 导学
--6.0.2 测试
-6.1 核心标签库
--6.1.5 测试
-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.2 测试
-6.3 小结
--6.3.1 小结
-7.0 导学
--7.0_导学
-7.1 过滤器
--7.1.3 测试
-7.2 监听器
--7.2.1.1与ServletContext相关的监听器
--7.2.4 测试
-7.3 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.2 测试
-7.4 小结
--7.4.1小结
-8.0 导学
--8.0_导学
-8.1 JDBC API
--8.1.2 测试
-8.2 JDBC API访问MySQL基本步骤
--8.2.2 测试
-8.3 任务实现:某高校毕业生信息发布系统-注册与登录
--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)
--8.3.2 测试
-8.4 小结
--8.4.1小结
-9.0导学
--9.0导学
-9.1 技术准备
--9.1.5 测试.
-9.2 系统设计
-9.3 系统实现
-9.4 小结
--9.4.1小结


