• jsp与Servlet之间传值


    在写项目中经常会把后台服务端的数据传到前台页面上。jsp与Servlet之间传值分为四种,jsp向Servlet传值,反过来Servlet向jsp页面传值,jsp之间传值,Servlet之间传值。

    Servlet向jsp页面传值:

    一、

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

    request.setAttribute("key", value);
    
    
    key代表键,是一个字符串,jsp页面通过这个字符串可以获取值,注意key一定要一致

        <%
        String s =(String)request.getAttribute( "key ");
        %>
    
    
    注意通过request获取到的值是Object类型的需要强转,还有就是用这种方法不能用重定向到jsp页面,要用转发

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

    二、

    利用跳转Servlet:

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

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

    jsp页面向Servlet传值:

    一、

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

    <a href="AServlet?password=传输内容">文本</a>
    
    
    Servlet代码:

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

    二、

    通过form表单传值:

    jsp页面:

    <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");

    三、

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

    Servlet向Servlet之间传值:

    一、

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

            HttpSession session = request.getSession();
            session.setAttribute("user", user);
    先获取session对象在把值通过键值对传输

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

    二、

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

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

    request.getParameter("username");
    
    

    jsp向jsp传值:

    传输:

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

    <%
    String username = (String)request.getAttribute("username");
    %>
    
    其实用的是java代码,注意要用转发

  • 相关阅读:
    dayfunctools.weps 定义函数装饰器
    python3之concurrent.futures一个多线程多进程的直接对接模块,python3.2有线程池了
    python的类的super()
    django的admin
    python的单例模式
    git指南
    django创建验证码
    Django model对象接口
    Go语言基础
    迭代器&迭代对象&生成器
  • 原文地址:https://www.cnblogs.com/duzhentong/p/7816561.html
Copyright © 2020-2023  润新知