JSP  Servlet返回值到JSP
在上述内容中,已经了解HttpSession对象,如果将Servlet中的值返回到JSP页面,可以通过该对象。
首先,先定义一个Session对象,并通过Session对象的setAttribute( )方法定义一个变量。然后,再将Servlet中的变量或者值赋给Session定义的变量。最后,通过跳转语句,返回到指定的JSP页面。例如,在上述内容中,创建的Usercheck.java文件,就实现了将check值返回到User.jsp页面。
而在JSP页面中,用户需要通过Session对象的getAttribute( )方法,获取Session中的变量所指定的值。
文件名:User.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>用户登录</title>
    </head>
    <body>
        <%String check = (String) Attribute("check");
            out.print(check);%>
        <form method="post" action="Servlet/User" name="form">
            <p>    用户名:    <input type="text" name="name"></p>
            <p>    密 码:<input type="password" name="pwd"></p>
            <p><input type="submit" value="提交" name="button1"></p>
        </form>
    </body>
</html>
在该文件中,通过form表单将用户名和密码内容,传递到Servlet文件中。同时,在form表单上面,通过getAttribute( )获取check内容。例如,在浏览该文件时,在“用户名:”上面显示一个null,因为第一次运行该文件,而还没有请求Servlet文件,所以Servlet中的check变量,还没有定义,如图6-23所示。
然后,单击【提交】按钮请求Servlet文件,并再返回到该页面,则显示“用户名和密码错误!”,如图6-24所示。
图6-23  通过form请求Servlet        图6-24  返回值
上述内容中,通过Servlet文件返回到JSP文件时,使用“response.sendRedirect("../User.jsp");”语句来实现的。除此之外,Servlet文件中包含可以通过其它两种方法,来跳转页面。先来看下列代码:
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher("/url").include(request, response);
RequestDispatcher("/url").forward(request, response);
request.sendRedirect("/url");
}
上述代码中,描述了在Servlet文件中,三种跳转页面方法的语法,其中URL地址可以是ht
ml、jsp、servlet或其他的HTTP地址。而这三种方式,都是通过HttpServletRequest对象和HttpServletResponse对象实现。下面来了解一下这三种方式的区别:
Include  将url中的内容包含到当前的servlet文件输出当中,在服务器端完成,一般叫做包含;
Forward  将当前的Request和Response对象交给指定的url处理,一般称作转发请求;在服务器端完成,客户端地址栏看到的路径还是当前请求的servlet路径;
jsp创建sendRedirect  指示客户端重新发起一次请求,第二次请求指向其参数的url,一般称作重定向;客户端的地址栏将改变为url值,是由客户端发起的第二次请求。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。