您好我有一个像这样的servlet类
public class DBConnection extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
resp.setContentType("text/html");
req.setAttribute("Message","Message from servlet page");
req.getRequestDispatcher("/index.jsp").forward(req,resp);
}
}
在index.jsp页面上调用servlet,如下所示
<% String Msg= (String)request.getAttribute("Message");
out.println("<p> Servlet communicated message to JSP: "+ Msg + "</p>");%>
这在我的web.xml文件中
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>dbconnection</display-name>
<welcome-file-list>
<welcome-file>Login.html
</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>DBConnection</servlet-name>
<servlet-class>DBConnection</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DBConnection</servlet-name>
<url-pattern>/DBConnection</url-pattern>
</servlet-mapping>
</web-app>
我得到一个空值..任何人都可以帮助我吗?
答案 0 :(得分:1)
您正在获取空值,因为您没有使用正确的URL访问。
假设您有以下网址:
http://localhost:8080/TestWeb/
您的项目名称为TestWeb
。如果您尝试使用上面的url,则会获得null
值,因为请求不是来自servlet。所以你需要使用以下url
http://localhost:8080/TestWeb/DBConnection
然后只有你会得到正确的输出。请试一试。
答案 1 :(得分:0)
您可以使用表达式语言访问servlet中定义的属性。
内部JSP:
<p> Servlet communicated message to JSP: ${Message} </p>
的Servlet
RequestDispatcher rd;
resp.setContentType("text/html");
req.setAttribute("Message","Message from servlet page");
rd = req.getRequestDispatcher("/index.jsp");
rd.forward(req,resp);
答案 2 :(得分:0)
您没有在您尝试调用的url中调用您的servlet 按照Yubi的建议尝试。
示例:如果您的网址格式为
<url-pattern>/TestingServlet</url-pattern>
在你的web.xml
执行你的servlet获取/发布该servlet你应该使用urlpattern
`http://yourserverhost:port/ServletTest/TestingServlet`
ServletTest 是您的应用程序上下文, TestingServlet 是您的Servlet的url模式。
<servlet>
<description></description>
<display-name>TestingServlet</display-name>
<servlet-name>TestingServlet</servlet-name>
<servlet-class>TestingServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestingServlet</servlet-name>
**<url-pattern>/TestingServlet</url-pattern>**
</servlet-mapping>