博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
服务器端跳转
阅读量:5890 次
发布时间:2019-06-19

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

服务器端跳转

概述:

  服务器端跳转 又叫 做服务器端转发 还可以叫做 服务器端重定向,
  客户端发送一次请求之后, 服务器做了多次跳转,
  可以在服务器端使用 "req.getRequestDispatcher("跳转路径").forward(req,resp)"
  实现服务器端跳转

用户发送请求看到数据的过程:

  1.用户发送请求到服务器
  2.服务器会将请求交给对应的控制器 (目前是 Servlet 处理),
  在控制器中调用业务层方法获取数据
  3.将获取的数据保存到 request 内置对象
  4.在跳转到页面将保存在 request 内置对象中的数据再次读取出来之后显示到页面 (用户看到信息)

服务器端跳转的特征:

  1.浏览器的地址栏信息不会发生改变
  2.使用服务器端跳转之后, 可以在 jsp 页面中获取保存在 request 内置对象中的属性
  3.对于客户端来说只发送了一次请求

Demo: 服务器端跳转

1.将雇员的信息保存到 request 内置对象

1 @SuppressWarnings("serial") 2 public class EmpServlet extends HttpServlet { 3     //获取业务层实现类对象 4     private IEmpService empservice = (IEmpService)ServiceFactory.getInstance(EmpServiceImpl.class); 5     @Override 6     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 7         Integer empno = Integer.parseInt(req.getParameter("id")); 8          9         try {10             //将查询的数据保存到 request 内置对象11             req.setAttribute("emp", empservice.findEmpById(empno));12             //跳转到显示雇员的页面13             //获取实现跳转的对象14             RequestDispatcher dispatcher = req.getRequestDispatcher("/pages/emp.jsp");15             //开始转发16             dispatcher.forward(req, resp);17         } catch (Exception e) {18             e.printStackTrace();19         }20     }21     @Override22     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {23         this.doGet(req, resp);24     }25 }

2.动态页面:定义 emp.jsp 文件获取雇员信息

  在 jsp 中使用 ${key值.对象属性名} 的方式获取保存在 request 内置对象
  这种方式叫做 EL 表达式 (Expression language).

1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3  4  5  6 
7 Insert title here 8 9 10

11 显示雇员信息12 ${emp}13

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
编号 姓名 职位 薪资 领导编号 入职日期 佣金 部门编号
${emp.empno} ${emp.ename} ${emp.job} ${emp.sal} ${emp.mgr} ${emp.hiredate} ${emp.comm} ${emp.deptno}
29 30

 

转载于:https://www.cnblogs.com/yslf/p/10745472.html

你可能感兴趣的文章
30个美丽干净的,帮助用户专注于内容的网站设计
查看>>
高级Bash脚本编程指南(27):文本处理命令(三)
查看>>
JavaScript---事件
查看>>
Android NDK入门实例 计算斐波那契数列一生成jni头文件
查看>>
c/c++性能优化--I/O优化(上)
查看>>
将HTML特殊转义为实体字符的两种实现方式
查看>>
jquery 保留两个小数的方法
查看>>
The 6th tip of DB Query Analyzer
查看>>
boost xpressive 例子
查看>>
C++容器和算法
查看>>
leetcode -- Convert Sorted Array to Binary Search Tree
查看>>
ADO.NET访问Access(文本数据库)数据操作(CRUD)
查看>>
razor 语法
查看>>
贝佳斯绿泥_百度百科
查看>>
安卓模拟器
查看>>
JSP/Servlet的编码原理
查看>>
java命令行HPROF Profiler
查看>>
css 禅意花园 笔记
查看>>
网站架构设计的误区
查看>>
Standard C++ Programming: Virtual Functions and Inlining
查看>>