[英]sending data from java servlet to jsp
我正在尝试将Java servlet中的字符串发送到JSP,但是我总是在字符串中获得null
Test.java
Servlet: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String s = "HelloWolrd";
System.out.println(s);
response.setContentType("text/jsp");
request.setAttribute("s", s);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/test.jsp");
dispatcher.forward(request,response);
}
test.jsp
<body><%= request.getAttribute("s")%> </body>
web.xml
具有映射到api的servlet类。 测试和url-pattern为/test
。
根据您的项目结构,将test.jsp
文件放置在WEB-INF
之外。 再次验证。
Servlet:
public class Test extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String s = "HelloWolrd";
System.out.println(s);
response.setContentType("text/jsp");
request.setAttribute("s", s);
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher("/test.jsp"); // CHANGE IT HERE
dispatcher.forward(request, response);
}
}
web.xml:
<servlet>
<servlet-name>XYZ/servlet-name>
<servlet-class>apis.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XYZ</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
看看我的另一篇文章,servlet过滤器如何识别下一个目的地是另一个过滤器还是servlet / jsp? 有关用于url-pattern
Servlet匹配过程的详细说明。
注意:始终尽量避免使用Scriplet,而应使用JavaServer Pages标准标记库和表达式语言 。
另外,根据eclipse目录结构,您的JSP仍位于WebContent文件夹下。 所以你需要做
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/traders/test.jsp");
您可以尝试的其他东西
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/traders/test.jsp?s=s");
然后在您的JSP中,您可以执行
<%= request.getAttribute("s")%>
要么
您可以使用会话
HttpSession session = request.getSession(true);
session.setAttribute("s", "s");
并做
<%= session.getAttribute( "s" ) %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.