0
点赞
收藏
分享

微信扫一扫

JSP&Servlet学习笔记-6


客户端跳转 VS 服务器端跳转

1,在 Servlet 中获取 session,application
2,客户端跳转 response.sendRedirect("目标地址");
3,服务器跳转:RequestDispatcher rd=request.getRequestDispatcher("目标地址"); rd.forward(request, response);

客户端跳转

客户端跳转request信息是带不到服务器端的,但session和application的信息可以带到。

Servlet类

public class RedirectServlet extends HttpServlet {

/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("requestKey", "request值");
HttpSession session = request.getSession(); // 获取session
session.setAttribute("sessionKey", "session值");
ServletContext application = this.getServletContext(); // 获取application
application.setAttribute("applicationKey", "application值");

response.sendRedirect("target.jsp"); // 客户端跳转/重定向
}

}

web.xml

...
<servlet>
<servlet-name>redirectServlet</servlet-name>
<servlet-class>com.beeworkshop.web.RedirectServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>redirectServlet</servlet-name>
<url-pattern>/redirect</url-pattern>
</servlet-mapping>

target.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>目标地址</h1>
request值:<%=request.getAttribute("requestKey") %><br/>
session值:<%=session.getAttribute("sessionKey") %><br/>
application值:<%=application.getAttribute("applicationKey") %><br/>
</body>
</html>

结果

JSP&Servlet学习笔记-6_html

服务器端跳转

Servlet类

public class RedirectServlet extends HttpServlet {

/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("requestKey", "request值");
HttpSession session = request.getSession(); // 获取session
session.setAttribute("sessionKey", "session值");
ServletContext application = this.getServletContext(); // 获取application
application.setAttribute("applicationKey", "application值");

RequestDispatcher rd = request.getRequestDispatcher("target.jsp");
rd.forward(request, response); // 服务器跳转/内部转发
}

}

其他不变,结果如下:

JSP&Servlet学习笔记-6_html_02


举报

相关推荐

0 条评论