jsp与Servlet之间传值

jsp与Servlet之间传值分为四种,Servlet向jsp页面传值,jsp向Servlet传值,Servlet之间传值,jsp之间传值.

一:Servlet向jsp页面传值

1,利用request这个对象在Servlet中设置键值对,在jsp页面通过键获取值,

request.setAttribute("key", value);

key代表键,是一个字符串,jsp页面通过这个字符串可以获取值,注意key一定要一致

<%  
String s =(String)request.getAttribute( "key");  
%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String errorKey =(String)(request.getAttribute("errorKey")==null?"":request.getAttribute("errorKey"));
String demoKey =(String)(request.getAttribute("demoKey")==null?"default_demo":request.getAttribute("demoKey"));
String imageUrl = basePath+"chartJson?parameter="+demoKey;
%>

注意通过request获取到的值是Object类型的需要强转,还有就是用这种方法不能用重定向到jsp页面,要用转发

request.getRequestDispatcher("/…….jsp").forward(request, response);

2,利用跳转Servlet,

response.sendRedirect("/…….jsp?username="+username); 

jsp页面:

<%  
        String s = (String) request.getParameter("username");  
    %> 

二:jsp向Servlet传值

1,通过超链接传值
jsp页面:

<a href="JspServlet?action=toServlet">click me</a>  

Servlet代码:

String d = request.getParameter("action"); 

2,通过form表单传值
jsp页面:

<!--<form action="JspServlet?action=toServlet" method="post" name="form"> -->
<form action="LoginServlet">
    <input type="text" name="username">  
    <input type="text" name="password">  
    <input type="submit" value="登录">  
</form> 

Servlet代码:

String username = request.getParameter("username");  
String password = request.getParameter("password");

3,还可以通过java代码传值,不建议这么写,在后期维护很麻烦

三:Servlet之间传值

1,通过session对象,一个浏览器就是一个会话,使用两个浏览器无法获得值

HttpSession session = request.getSession();  
session.setAttribute("user", user);

先获取session对象在把值通过键值对传输

HttpSession session = request.getSession();  
User user = (User) session.getAttribute("user");  

2,直接跳转,和Servlet向jsp页面传值一样在跳转文件后面添加值

response.sendRedirect("BServlet?username=qu"); 

接收:

request.getParameter("username");

四:jsp之间传值:
传输:

<%  
request.setAttribute("username","username");  
%>  
<jsp:forward page="demo2.jsp"/>  

接收:

<%  
String username = (String)request.getAttribute("username");  
%> 
其实用的是java代码,注意要用转发
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值