将参数从 JSP 页面传递到 servlet 而不使用表单参数

时间:2021-06-04 05:18:21

标签: java jsp servlets

我一直在尝试将参数从welcome.jsp 页面传递到details.java servlet。但是我在servlet details.java 中得到的值为空。 这是welcome.jsp的代码

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<% 
String n=(String)session.getAttribute("name");
if(n==null)response.sendRedirect("login.html");

%>
Hello there!!
<%
out.println(n+"<br>");
String u=(String)session.getAttribute("userid");
out.println(u);
HttpSession session1=request.getSession();  
session1.setAttribute("userid",u); 
%>


<h3>Click here to see your salary details</h3>
<form action="Details">

<button>Salary details</button>
</form>
<h3>Click here to see your other details</h3>
<form action="">
<button>Other</button>
</form>
</body>
</html>

这里是servlet details.java的代码

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    PrintWriter out=response.getWriter();
    out.println(request.getParameter("userid"));
    //out.println(userid+"<br>");
    
    response.getWriter().append("Served at: ").append(request.getContextPath());
}

我得到的输出是

null Served at: /login

有什么方法可以在不使用表单的情况下将这些参数值传递给我的 servlet?

1 个答案:

答案 0 :(得分:-1)

您应该使用核心库中的 c:set 元素并将范围设置为请求。文档中的示例:

<c:set var="foo" scope="request" value="..."/>

不要忘记在 JSP 顶部声明标签库:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
相关问题