一、服务器重定向
服务器重定向又叫做服务器转发和服务器跳转,在大部分的开发中从用户发送请求到看到数据会经历如下过程:
1.用户发送请求到服务器
2.服务器会将请求交给对应的控制器(目前是Servlet)处理,在控制器中调用业务层方法取得数据
3.之后将取得数据保存到request内置对象
4.然后在跳转到页面将保存在request内置对象中的数据再次取出来之后显示到页面,用户就有能够看到信息
总结:服务器端重定向(跳转,转发)的特征
1.实现的方式是调用RequestDispatcher类的forword()方法
2.服务器端转发浏览器的地址栏信息不会发生改变
3.使用服务器端转发之后,可以在jsp页面中取得保存在request内置对象中的属性
4.使用${参数名}在jsp中取得对应的值的方式叫做EL表达式
服务器重定向简单demo,实现数据库中的雇员信息保存到request内置对象并在jsp中显示
public class EmpServlet extends HttpServlet{ //取得业务层实现类对象 private IEmpService empservice=(IEmpService)ServiceFactory.getInstance(IEmpServiceImpl.class); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //将雇员信息保存到requset内置对象 Integer empno = Integer.parseInt(req.getParameter("id")); try { //将查询到的数据保存到request内置对象 req.setAttribute("emp", empservice.findEmpById(empno)); //跳转显示雇员的页面 //取得实现跳转的对象 RequestDispatcher dispatcher = req.getRequestDispatcher("/pages/emp.jsp"); //开始转发 dispatcher.forward(req, resp); } catch (Exception e) { e.printStackTrace(); } } }
jsp代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html