JSP与Servlet之间的传值问题

一、Servlet向jsp页面传值

方法一:
利用request这个对象在Servlet中设置键值对,在jsp页面获取值
Servlet传值:

request.setAttribute("key", value);

jsp页面接收:

<% String s =(String)request.getAttribute( "key "); %>

注意:
1.key一定要一致;
2.不能用重定向方式跳转jsp页面;
3.request获取到的值是Object类型的需要强转

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

猜你喜欢

转载自blog.csdn.net/qq_36502185/article/details/82711054