how2j.cn


工具版本兼容问题
页面跳转是开发一个web应用经常会发生的事情。

比如登录成功或是失败后,分别会跳转到不同的页面。

跳转的方式有两种,服务端跳转和客户端跳转

步骤 1 : 首先准备两个页面 success.html fail.html   
步骤 2 : 服务端跳转   
步骤 3 : 客户端跳转   
步骤 4 : 服务端跳转与客户端跳转图示   

步骤 1 :

首先准备两个页面 success.html fail.html

首先在web目录下准备两个页面 success.html,fail.html
分别用于显示登录成功 或者登录失败

如果登录成功了,就服务端跳转到success.html

如果登录失败了,就客户端跳转到fail.html
首先准备两个页面 success.html fail.html
<div style="color:green">login success</div>
<div style="color:green">login success</div>
<div style="color:red">login fail</div>

<div style="color:red">login fail</div>
步骤 2 :

服务端跳转

在Servlet中进行服务端跳转的方式:


request.getRequestDispatcher("success.html").forward(request, response);


服务端跳转可以看到浏览器的地址依然是/login 路径,并不会变成success.html
服务端跳转
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String password = request.getParameter("password"); if ("admin".equals(name) && "123".equals(password)) { request.getRequestDispatcher("success.html").forward(request, response); } } }
步骤 3 :

客户端跳转

在Servlet中进行客户端跳转的方式:

response.sendRedirect("fail.html");


可以观察到,浏览器地址发生了变化
客户端跳转
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String password = request.getParameter("password"); if ("admin".equals(name) && "123".equals(password)) { request.getRequestDispatcher("success.html").forward(request, response); } else{ response.sendRedirect("fail.html"); } } }
步骤 4 :

服务端跳转与客户端跳转图示

服务端跳转与客户端跳转图示


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-07-16 使用服务器跳转request.getRequestDispatcher("lol.html").forward(request, response);时,网页的中文变成乱码
askwla
关于 J2EE-Servlet-跳转 的提问



使用客户端跳转可以正常显示,使用服务器跳转中文会变成乱码怎么解决??

							

							


1 个答案

liyue_ 答案时间:2018-08-17
要么你servlet 中没加 request.setCharacterEncoding("UTF-8"); //中文编码 要么就是html文件夹中没加 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 仔细看看,编码问题只可能是这两个




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-07-06 建议:“客户端跳转”写成“重定向”会清晰一些
TTLJ
关于 J2EE-Servlet-跳转 的提问
建议:“客户端跳转”写成“重定向”会清晰一些








答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2018-06-15 失败跳转问题
2018-04-27 原来是服务端让浏览器去访问fail.html页面!
2018-04-26 private static final long serialVersionUID = 1L;
2018-01-14 这是区别,学到了MVC那一块,就能理解的更加深刻了!
2017-11-27 为什么正确与错误信息回访页面不一样
2017-10-26 总感觉少了点什么??
2017-10-26 这里的utf-8
2017-10-26 Servlet跳转后把表单数据显示在jsp为什么我这个总是失败
2017-09-19 绝对路径与相对路径跳转
2017-09-14 文件放的位置问题
2017-08-25 前台js可以提供跳转为什么要用后台跳转
2017-07-12 弱弱问一问跳转问题
2017-06-24 什么时候用服务端跳转 什么时候用客户端跳转
2017-05-18 .forward(request, response)方法的作用?
2017-04-18 跳转,传值
2017-01-25 跳转的区别
2016-10-18 无法进行正常跳转




提问之前请登陆
关于 J2EE-Servlet-跳转 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 902680467
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图