【问题标题】:Unable to forward the values form servlet to html无法将值从 servlet 转发到 html
【发布时间】:2015-09-15 16:58:54
【问题描述】:

我正在尝试将 userName 作为请求发送到 html 页面作为设置属性,但它没有在 FormDemo 中显示消息,请让我知道我哪里出错了。

登录页面

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Form</title>
</head>
<body>
<div align="center">
<form name="loginForm" method="post" action="loginServlet">
    Username: <input type="text" name="username"/> <br/>
    Password: <input type="password" name="password"/> <br/>
    <input type="submit" value="Login" />
</form>
</div>
</body>
</html>

登录servlet.java

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 public class LoginServlet extends HttpServlet {

/**
 * 
 */
private static final long serialVersionUID = 1L;

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

    // read form fields
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    System.out.println("username: " + username);
    System.out.println("password: " + password);
    request.setAttribute("userName", username);
         request.getRequestDispatcher("/FormDemo.html").forward(request,response);
}

}

FormDemo.html

   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Form Demo</title>
   </head>
   <body>
   <p> <%= request.getAttribute("userName") %></p>
   </body>
  </html>

Web.xml

  <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns="http://java.sun.com/xml/ns/javaee" 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>LexisNexis</display-name>
       <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        </welcome-file-list>

           <servlet>
          <servlet-name>LoginServlet</servlet-name>
             <servlet-class>package.LoginServlet</servlet-class>
           <load-on-startup>0</load-on-startup>
           </servlet>

           <servlet-mapping>
          <servlet-name>LoginServlet</servlet-name>
             <url-pattern>/loginServlet</url-pattern>
             </servlet-mapping>

          <servlet>
          <servlet-name>DemoServlet</servlet-name>
               <servlet-class>package.DemoServlet</servlet-class>
           </servlet>

          <servlet-mapping>
               <servlet-name>DemoServlet</servlet-name>
               <url-pattern>/demoServlet</url-pattern>
             </servlet-mapping>

            </web-app>

【问题讨论】:

    标签: java html servlets request


    【解决方案1】:

    没有办法将这样的值写入纯 HTML 页面。您需要使用JSP 来执行此操作。

    【讨论】:

    • 是的,添加“ " 并将页面设置为 JSP 然后它就可以工作了。谢谢指出
    【解决方案2】:

    U 不能将值从 servlet 呈现到 html。您正在使用的 Jsp 标记仅适用于 JSP。 JSP 也是一种 Servlet,因此当您将请求从一个 servlet 转发到 JSP 时,请求会将所有请求和响应数据带到 JSP,您的属性也将在 JSP 中可用。所以使用 FormDemo.jsp 而不是 FormDemo.html。然后就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 2013-04-27
      • 2014-10-30
      • 2014-02-25
      • 1970-01-01
      • 2020-10-18
      • 2011-06-25
      相关资源
      最近更新 更多