JSP和servlet之间的相互传值
1.从一个jsp页面跳转到另一个jsp页面时的参数传递
(1)使用request对象获取客户端提交的信息
login.jsp页面代码如下:
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="getinfo.jsp">
<input type="text" name="name">
<input type="submit" value="Enter" name="submit">
</form>
</body>
</html>
getinfo.jsp页面代码如下:
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<p>获取文本框提交的信息:
<%
String textContent = request.getParameter("name");
%>
<br/>
<%=textContent%>
</p>获取按钮的名字:
<%
String buttonName = request.getParameter("submit");
%>
<br/>
<%=buttonName%>
</body>
</html>
(2)使用session对象获取从客户端提交的信息
session1.jsp页面代码如下:
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="session2.jsp" method="post">
请输入您的姓名:
<input type="text" name="thename">
<input type="submit" value="submit">
</form>
</body>
</html>
session2.jsp通过request对象提取session1.jsp表单中的thename值,并将其保存到session对象中,
session2.jsp代码如下:
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String name = request.getParameter("thename");
session.setAttribute("thename",name);
%>
您的姓名是:<%=name%>
<p>
<form action="session3.jsp?pwd=123456" method="post">
您喜欢吃什么?
<input type="text" name="food"/>
<p>
<input type="submit" value="submit">
</form>
</body>
</html>
session3.jsp的主要任务是显示结果,它从session对象提取thename的值并显示它,以证明在多个页面中可以通过session对象存储和维持信息,session3.jsp代码如下:
点击查看代码
<pre name="code" class="java"><%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String food = request.getParameter("food");
String name = (String)session.getAttribute("thename");
String pwd = request.getParameter("pwd");
%>
您的姓名是:<%=name%>
<p>
您喜欢吃:<%=food%>
<p>
您的密码是:<%=pwd%>
</body>
</html></pre>
程序运行结果如图2所示:
(3)利用隐藏域传递数据
使用隐藏空间记录用户提交日期的hiddenindex.jsp代码如下:
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="hidden.jsp" method="post" name="form1">
<!-- 隐藏字段,系统时间,并转换为毫秒数 -->
<input type="hidden" name="time" value="<%=new java.util.Date()%>">
<p>
请输入您的姓名:<input type="text" name="name">
</p>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
显示隐藏空间信息的hidden.jsp代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String name = request.getParameter("name");
String date = request.getParameter("time");
%>
<p>您的姓名是:
<%=name %>
</p>
<p>提交时的系统时间为:
<%=date %>
</p>
</body>
</html>
程序运行结果如下:
使用隐藏域的一个缺点是用户可通过查看网页源程序读到隐藏域的值。
(4)通过超链接传递数据
建立链接到其他分页的超级链接page.jsp代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
int PageCount = 15;
%>
<html>
<body>
<table>
<tr>
<td>
<a href=showpage.jsp?ToPage=<%=1%>>到第1页</a>
</td>
<td>
<a href=showpage.jsp?ToPage=<%=PageCount%>>到最后一页</a>
</td>
</tr>
</table>
</body>
</html>
接收显示分页showpage.jsp代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String toPage = request.getParameter("ToPage");
out.println("第" + toPage + "页");
%>
</body>
</html>
运行结果如下:
2.jsp页面传递参数给servlet
(1)使用request对象接收参数
新建名为ForwardServlet的Servlet类,代码如下:
[java] view plain copy
点击查看代码
package com.shi.servlet;
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 ForwardServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
/**
* 构造函数
*/
public ForwardServlet()
{
super();
}
/**
* 初始化
*/
public void init() throws ServletException
{}
/**
* doGet()方法
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
/**
* doPost()方法
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
if((name!=null && !name.equals("")) && (pwd!=null && !pwd.equals("")))
{
if(name.equals("mr")&&pwd.equals("123"))
{
request.getRequestDispatcher("success.jsp").forward(request, response);
}
else
{
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
}
/**
* 销毁
*/
public void destroy()
{
super.destroy();
}
}
在web.xml中配置ForwardServlet类,代码如下:
[java] view plain copy
点击查看代码
<?xml version="1.0" encoding="GB2312"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 配置servlet -->
<servlet>
<servlet-name>ForwardServlet</servlet-name>
<servlet-class>com.shi.servlet.ForwardServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ForwardServlet</servlet-name>
<url-pattern>/forward</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
新建index.jsp,其中<form>中的action属性值为Servlet类在web.xml中配置的url,提交方式为post,代码如下:
[java] view plain copy
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="forward" method="post">
<table align="center">
<tr>
<td>用户名:</td>
<td>
<input type="text" name="name"/>
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" name="pwd"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登录"/>
</td>
</tr>
</table>
</form>
</body>
</html>
登录成功页面success.jsp,代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
欢迎<%=request.getParameter("name") %>,登录成功!
</body>
</html>
程序的运行结果图5所示:
(2)使用session对象,url,form表单传递参数
在jsp2servlet.jsp中,分别使用request对象,session对象,url,form表单设置需要传递的参数,代码如下:
[java] view plain copy
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
session.setAttribute("testSession","Hello session");
request.setAttribute("testRequest","Hello request");
%>
<a href="http://localhost:8080/086/jsp2servlet?hrefAction=toServlet">单击此处</a>
<form action="jsp2servlet?action=toServlet" method="post" name="form1">
<input type="text" name="username"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
在Jsp2Servlet中接收jsp页面中传递的参数并将其显示,代码如下:
[java] view plain copy
点击查看代码
package com.shi.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Jsp2Servlet extends HttpServlet
{
/**
* 自动生成
*/
private static final long serialVersionUID = 1L;
/**
* 构造函数
*/
public Jsp2Servlet()
{
super();
}
/**
* 初始化
*/
public void init()
{}
/**
* doGet()
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
/**
* doPost()
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String strSession = (String)request.getSession().getAttribute("testSession");
String strRequest = (String)request.getAttribute("testRequest");
String strHref = request.getParameter("hrefAction");
String strForm = request.getParameter("action");
String username = request.getParameter("username");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<html>");
out.println("<body>");
out.println("保存到session中的内容: " + strSession + "<br>");
out.println("保存到request中的内容:" + strRequest + "<br>");
out.println("超链接中传递的参数值为:" + strHref + "<br>");
out.println("form表单中传递的action值为:" + strForm + "<br>");
out.println("form表单内input标签中username的值: " + username + "<br>");
out.println("</body>");
out.println("</html>");
}
/**
* 销毁
*/
public void destroy()
{
super.destroy();
}
}
程序运行结果如图6所示:
servlet无法获取request.setAttribute()中的内容,因为在jsp2servlet.jsp中提交时,生成的一个新的request,因此无法取到jsp页面中request.setAttribute()中设置的值。
3.从servlet到jsp页面中传递参数
从servlet到jsp页面传递参数,可以使用URL,request对象,session对象,新建Servlet2Jsp.java,代码如下:
[java] view plain copy
点击查看代码
package com.shi.servlet;
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 Servlet2Jsp extends HttpServlet
{
/**
* 自动生成
*/
private static final long serialVersionUID = 1L;
/**
* 构造函数
*/
public Servlet2Jsp()
{
super();
}
/**
* 初始化
*/
public void init()
{}
/**
* doGet()
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
/**
* doPost()
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String url = "result.jsp?first=传递第一个参数&second=传递第二个参数";
String strRequest = "request传值";
String strSession = "session传值";
request.setAttribute("strRequest", strRequest);
request.getSession().setAttribute("strSession", strSession);
/**
* 客户端跳转:效率低
* session范围属性,url中的参数会传递下去,request范围属性不传递
*/
//response.sendRedirect(url);
/**
* 服务器端跳转:常用,效率高
* request范围属性,session范围属性,url中的参数会传递
*/
request.getRequestDispatcher(url).forward(request, response);
}
/**
* 销毁
*/
public void destroy()
{
super.destroy();
}
}
在web.xml中配置该servlet后,新建参数接收页result.jsp,代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String strURL = request.getParameter("first");
String strRequest = (String)request.getAttribute("strRequest");
String strSession = (String)request.getSession().getAttribute("strSession");
%>
<p>
URL中取得的属性值为:<%=strURL%>
</p>
<p>
request中取得的属性值为:<%=strRequest%>
</p>
<p>
session中取得的属性值为:<%=strSession%>
</p>
</body>
</html>
程序的运行结果如图7所示:
4.从一个servlet到另一个servlet时的参数传递
(1)通过超链接和表单传递数据
通过超链接后面给定要传递参数的值,但长度有限制,通过超链接和表单传递数据,使用request.getParamter()方法,代码如下:
[java] view plain copy
点击查看代码
package com.shi.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletA extends HttpServlet
{
/**
* 自动生成
*/
private static final long serialVersionUID = 1L;
/**
* 构造函数
*/
public ServletA()
{
super();
}
/**
* 初始化
*/
public void init()
{}
/**
* doGet()
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
/**
* doPost()
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name = "hello, servlet";
out.println("<html>");
out.println("<body>");
/**
* 超链接
*/
out.println("<a href='ServletB?name="+name+"'>this is a test</a>");
/**
* 表单
*/
out.println("<form action='ServletB' method='post'>");
out.println("用户名:");
out.println("<input type='text' name='username'>");
out.println("<input type='submit' vlue='提交'>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
out.flush();
}
/**
* 销毁
*/
public void destroy()
{
super.destroy();
}
}
接收servlet中传递参数的代码如下:
[java] view plain copy
点击查看代码
package com.shi.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletB extends HttpServlet
{
/**
* 自动生成
*/
private static final long serialVersionUID = 1L;
/**
* 构造函数
*/
public ServletB()
{
super();
}
/**
* 初始化
*/
public void init()
{}
/**
* doGet()
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
/**
* doPost()
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String name = request.getParameter("name");
String username = request.getParameter("username");
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("超链接传递的参数值为:" + name);
out.println("form表单中提交的用户名为:" + username);
out.println("</body>");
out.println("</html>");
out.flush();
}
/**
* 销毁
*/
public void destroy()
{
super.destroy();
}
}
程序运行结果如图8所示:
(2)使用setAttribute()和getAttribute()方法传递参数
设置参数的ServletA代码如下:
[java] view plain copy
点击查看代码
package com.shi.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletA extends HttpServlet
{
/**
* 自动生成
*/
private static final long serialVersionUID = 1L;
/**
* 构造函数
*/
public ServletA()
{
super();
}
/**
* 初始化
*/
public void init()
{}
/**
* doGet()
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
/**
* doPost()
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
/**
* setAttribute()和getAttribute()
*/
String data = "This is a test, we need more test for this";
request.setAttribute("strAtt", data);
request.getRequestDispatcher("/ServletB").forward(request, response);
}
/**
* 销毁
*/
public void destroy()
{
super.destroy();
}
}
获取参数的ServletB代码如下:
[java] view plain copy
点击查看代码
package com.shi.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletB extends HttpServlet
{
/**
* 自动生成
*/
private static final long serialVersionUID = 1L;
/**
* 构造函数
*/
public ServletB()
{
super();
}
/**
* 初始化
*/
public void init()
{}
/**
* doGet()
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
/**
* doPost()
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String strAtt = (String)request.getAttribute("strAtt");
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("getAttribute()得到的数据值为:" + strAtt);
out.println("</body>");
out.println("</html>");
out.flush();
}
/**
* 销毁
*/
public void destroy()
{
super.destroy();
}
}
程序的运行结果如图9所示:
5.JSP页面跳转方法
(1)RequestDispatcher.forward()
在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP或普通HTML文件,即你的form提交至a.jsp,在a.jsp用到了forward()重定向到b.jsp,此时form提交的所有信息在b.jsp都可以获得,参数自动传递。但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法再后面带参数传递,比如servlet?name=tom,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面。
重定向后浏览器地址栏URL不变。
通常在Servlet中使用,不在jsp中使用。
(2)response.sendRedirect()
在用户的浏览器端工作,sengRedirect()可以带参数传递,比如servlet?name=tom传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向至有frame的jsp文件。
重定向后在浏览器地址栏上会出现重定向页面的URL。
上述两种方式代码见图7。
由于response是jsp页面中的隐含对象,故在jsp页面中可以用response.sendRedirect()直接实现重定位。
注意:
①.使用response.sendRedirect()时,前面不能有HTML输出
这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的Server都有cache机制,一般在8K(JSP SERVER),这意味着,除非你关闭了cache,或者你用out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。
②.response.sendRedirect()之后,应该紧跟一句return
我们已经知道response.sendRedirect()是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后面的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。
比较:
①.Dispatcher.forward()是容器中控制权的转向,在客户端浏览器地址栏中不会出现转向后的地址
②.response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。
前者更加高效,在前者可以满足需要时,尽量使用RequestDispatcher.forward()方法。
注:在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRedirect()方法。
(3)<jsp:forward page=""/>
它的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的印记。
如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出至客户端,那么该语句将不起作用,这一点应该特别注意。
另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交。
测试代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<jsp:forward page="UpdateServlet">
<jsp:param value="list" name="action" />
</jsp:forward>
</body>
</html>
程序运行结果如图10所示:
(4)修改HTTP header的Location属性来重定向
通过设置直接修改地址栏来实现页面的重定向。
索引页1.jsp代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn = "2.jsp";
response.setHeader("Location",newLocn);
%>
</body>
</html>
转向页2.jsp代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
从1.jsp跳转至此页
</body>
</html>
程序运行结果如图11所示:
(5)JSP中实现在某页面停留若干秒后,自动重定向到另一页面
在jsp文件中,下面的代码:
[java] view plain copy
<meta http-equiv="refresh" content="5; url=target.jsp"
含义是:在5秒后正在浏览的页面将会自动变为target.jsp页。代码中5为刷新的延迟时间,以秒为单位。target.jsp为你想转向的目标页,若为本页则自动刷新本页。
由上可知,可以通过setHeader来实现某页面停留若干秒后,自动重定向到另一页面。
索引页5_1.jsp代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
String content = "5; url=5_2.jsp";
response.setHeader("REFRESH",content);
%>
5_1.jsp页面,5秒后转向5_2.jsp页面。
</body>
</html>
转向页5_2.jsp代码如下:
[java] view plain copy
点击查看代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
从5_1.jsp转到的页面
</body>
</html>
程序运行结果如下:
ps:在参数传递过程中使用el表达式
${param.name} 等价于 request.getParamter("name"),这两种方法一般用于服务器从页面或者客户端获取的内容。
${requestScope.name} 等价于 request.getAttribute("name"),一般是从服务器传递结果到页面,在页面中取出服务器保存的值。
转载于:https://www.cnblogs.com/nanyangzp/p/4917701.html
JSP和servlet之间的相互传值的更多相关文章
- JSP与Servlet之间的交互,传值
一.Servlet 首先要明白一点,servlet需要容器的支持才能够运行,如Tomcat.jetty 达到servlet的请求,需要ServletRequest对象和ServletResponse对 ...
- JSP与Servlet之间传值
Jsp与Servlet之间的传值有两种,一种是Jsp传值给Sevlet,另一种是Servlet传值给Jsp:使用request.response对象完成传值,具体实现如下: 1.JSP传值给Servl ...
- JSP与Servlet之间传值的一般方法,适合新手做练习
#JSP与Servlet之间传值 Jsp与Servlet之间的传值有两种,一种是Jsp传值给Sevlet,另一种是Servlet传值给Jsp:使用request.response对象完成传值,具体实现 ...
- 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例
初步学习JavaEE,对其中jsp与Servlet之间的传值没弄清楚,查看网上资料,发现一篇超详细的文章,收获大大,特此记录下来.具体链接:http://blog.csdn.net/ssy_shand ...
- jsp与servlet之间的参数传递【转】
JSP与 servlet之间的传值有两种情况:JSP -> servlet, servlet -> JSP. 通过对象 request和 session (不考虑 application) ...
- Jsp与servlet之间页面跳转及参数传递实例(转)
原网址:http://blog.csdn.net/ssy_shandong/article/details/9328985 11. jsp与servlet之间页面跳转及参数传递实例 分类: Java ...
- react-native页面之间的相互传值
react-native页面之间的相互传值 之前在自己学习react-native的时候,在页面跳转和传值问题上花了一段时间去网上搜索和查找资料,自己总结了两个方法.可以参考 https://blog ...
- js、JSP、servlet之间的传递小结
@ JS 与 JSP :JSP无法直接获取JS的值,只能通过隐藏表单或者dom节点设置. JSP中设置隐藏表单input,或者设置任意一个隐藏或者不隐藏的节点比如div, 而JS就通过document ...
- java web基础 js、JSP、servlet之间的传递
@ JS 与 JSP :JSP无法直接获取JS的值,只能通过隐藏表单或者dom节点设置. JSP中设置隐藏表单input,或者设置任意一个隐藏或者不隐藏的节点比如div, 而JS就通过document ...
- JSP与Servlet之间的关系事例说明
Servlet Servlet 没有 main 方法,不能够独立的运行,它的运行需要容器的支持,Tomcat 是最常用的 JSP/Servlet 容器.Servlet 运行在 Servlet 容器中, ...
随机推荐
- echarts学习
一.安装与引入 1.安装npm install echarts --save 2.引入import * as echarts from 'echarts';(main.js里全局引入) 二.详细概念 ...
- Telnet登陆网络设备执行命令脚本
# !/usr//bin/python3 # -*- coding:UTF-8 -*- from telnetlib import Telnet import time, os, datetime, ...
- JS回文检查(FreeCodeCamp项目)
需求 如果传入的字符串是回文字符串,则返回 true. 否则返回 false 回文 palindrome,指在忽略标点符号.大小写和空格的前提下,正着读和反着读一模一样. 注意:检查回文时,你需要先去 ...
- c++ 函数篇
1.函数是什么样子: dataType functionName( dataType1 param1, dataType2 param2 ... ){//do something }//形式参数pa ...
- 吴恩达老师机器学习课程chapter07——聚类
吴恩达老师机器学习课程chapter07--聚类 本文是非计算机专业新手的自学笔记,高手勿喷. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十三章. 缺少重要推演,只能作为 ...
- JiaoZiVideoPlayer模拟用户点击,切换播放引擎!~
默认播放及模拟用户点击播放按钮 jzvideoPlayerStandard.startButton.performClick() 切换播放引擎及使用Ijkplayer JZVideoPlayer.se ...
- C++ primer笔记 -数组和指针
如果数组没有显示的提供元素的初始值,则数组元素会像普通变量一样的初始化: 1.在函数体外的内置类型的数组,其元素均初始化为0 2.在函数体内的内置类型的数组,其元素无初始化 3.如果为类类型,则不管位 ...
- C语言学习--指针函数与函数指针
#include<stdio.h> #include<string.h> //指针函数: 是一个函数, 但是这个函数的返回值类型是一个指针 //函数指针: 是一个指针, 这个指 ...
- Bug_Android error: duplicate attribute. (错误:重复属性。)
error: duplicate attribute. 错误:重复属性. 如报错信息提示,属性重复赋值了 场景:刚拿到项目源码,进行修改前,先设置它的背景色,区分是哪一块内容,但没看到组件已定义了背景 ...
- vulnhub:Its_October靶机
kali:192.168.111.111 靶机:192.168.111.175 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --script=http-enum 192.168. ...