servlet跳转

1、跳转类型

客户端跳转:跳转后地址栏改变,无法传递request范围内属性,是在所有的操作都执行完毕之后才发生跳转的操作,跳转语法是,response.sendRedict()

服务器端跳转:地址栏不改变,可以传递request范围内属性,属于无条件跳转,只要执行到了,就立即执行跳转操作,语法是:<jsp:forward></jsp:forward>

2、servlet跳转

2.1 客户端跳转

servlet 中也是可以完成跳转的,servlet本身已经存在HttpServletResponse对象,所有可以直接通过此对象完成sendRedirect跳转操作。

代码如下:

public class ClientRedirectDemo extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
req.getSession().setAttribute("name","李李") ;
req.setAttribute("info","JAVA") ;
resp.sendRedirect("get_info.jsp") ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
this.doGet(req,resp) ;
}
}

xml配置:

<servlet>
<servlet-name>client</servlet-name>
<servlet-class>
com.alice.servletdemo.ClientRedirectDemo
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>client</servlet-name>
<url-pattern>/forward/ClientRedirectDemo</url-pattern>
</servlet-mapping>

get—info.jsp

<body>
<% request.setCharacterEncoding("GBK") ; %>
<h2>sesion属性:<%=session.getAttribute("name")%></h2>
<h2>request属性:<%=request.getAttribute("info")%></h2>
</body>

2.2 服务器端跳转

代码实现:

public class ServerRedirectDemo extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
req.getSession().setAttribute("name","李兴华") ;
req.setAttribute("info","MLDNJAVA") ;
RequestDispatcher rd = req.getRequestDispatcher("get_info.jsp") ; // 准备好了跳转操作
rd.forward(req,resp) ; // 完成跳转
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
this.doGet(req,resp) ;
}
}

xml配置:

<servlet>
<servlet-name>server</servlet-name>
<servlet-class>
com.alice.servletdemo.ServerRedirectDemo
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>server</servlet-name>
<url-pattern>/forward/ServerRedirectDemo</url-pattern>
</servlet-mapping>

javaWeb中servlet开发(4)——servlet跳转的更多相关文章

  1. javaWeb中servlet开发(3)——Servlet生命周期

    生命周期:是一个程序的存在周期,servlet由于是受容器的管理,所以容器来决定其生命周期 1.servlet生命周期 2.servlet生命周期对应的方法 3.servlet生命周期代码 publi ...

  2. javaWeb中servlet开发(2)——servlet与表单

    1.重写doGet方法 public class InputServlet extends HttpServlet{ public void doGet(HttpServletRequest req, ...

  3. javaWeb中struts开发——helloworld

    1.新建一个web项目 2.选中project,右键,选择MyElcipse,选择add  struts capab...添加struts支持,然后自己命名包 3.Struts在建立jsp时,标签要到 ...

  4. javaWeb中struts开发——Logic标签

    1.Struts标签的logic标签 Logic标签是逻辑标签,是Struts中比较重要的标签,完成各种逻辑运算操作,可以直接支持全局调转. 2.1<logic:present><l ...

  5. javaWeb中struts开发——Bean标签

    1.struts标签库中常用标签 使用myeclise标签可以自动注入,其中,前三个是经常使用的,主要的是logic标签 2.Bean标签 Bean标签主要用来定义和访问JavaBean,在Strut ...

  6. javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)

    一:servlet开发入门 servlet是sun公司一门开发动态web资源的技术,下面编写一个servlet入门程序: 1:在tomcat服务器webapps目录下新建firstServlet目录, ...

  7. Servlet开发详解

    一.Servlet简介 Servlet是sun公司提供的一门用于动态web资源的技术 sun公司在其API中提供了一个Servlet接口,用户若想开发一个动态web资源,需要完成两个步骤: 编写一个J ...

  8. 十:JavaWeb中的监听器(一)

    2.1.基本概念 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 ServletRequest等域 ...

  9. javaWeb中servlet开发——过滤器

    servlet开发--过滤器(filter) servlet有三种,分为简单servlet.过滤器servlet.监听servlet 简单servlet是作为一种程序所必须的开发结构保存的,继承htt ...

随机推荐

  1. bootstrap的图标无法正常显示解决方法

    bootstrap的图标无法在火狐浏览器上正常显示,出现的是乱码,如下图所示: 解决方案: 直接把bootstrap整个文件夹放到项目中,引用的时候../static/bootstrap-3.3.5- ...

  2. 蚂蚁【A001】

    [1005]出自附中练习场,其他编号(1005)[难度A]——————————————————————————————————————————————————————————————————————— ...

  3. Codeforces Round #333 (Div. 2)

    水 A - Two Bases 水题,但是pow的精度不高,应该是转换成long long精度丢失了干脆直接double就可以了.被hack掉了.用long long能存的下 #include < ...

  4. java基础内容

    此文作java语法基础的起始页,负责总结和目录引导 想我开始接触java语法也有比较长时间了(大概是2015年十月份),到现在(2016-10-25)为止还未系统的学习总结基础语法,亡羊补牢吧,回过头 ...

  5. Eclipse: Resource is out of sync with the file system when publishing to tomcat server on Eclipse

    Link: http://stackoverflow.com/questions/4343735/avoiding-resource-is-out-of-sync-with-the-filesyste ...

  6. HDU 2838 (DP+树状数组维护带权排序)

    Reference: http://blog.csdn.net/me4546/article/details/6333225 题目链接: http://acm.hdu.edu.cn/showprobl ...

  7. POJ 2480 (约数+欧拉函数)

    题目链接: http://poj.org/problem?id=2480 题目大意:求Σgcd(i,n). 解题思路: 如果i与n互质,gcd(i,n)=1,且总和=欧拉函数phi(n). 如果i与n ...

  8. 测试Centos硬盘读写速度

    yum install hdparm 参数:  -a<快取分区>   设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定.  -A<0或1& ...

  9. CentOS6.4 配置iptables

    如果没有安装iptables可以直接用yum安装 yum install -t iptables 检查iptables服务的状态, service iptables status 如果出现“iptab ...

  10. JS实现屏蔽键盘操作

    第一种:当页面初始加载的时候,屏蔽掉当前页面所有的键盘 $(document).ready(function () { document.body.onkeydown = function (even ...