【问题标题】:Getting null While Passing String from jsp to servlet将字符串从jsp传递到servlet时获取null
【发布时间】:2014-03-10 08:47:43
【问题描述】:

这是我的 Jsp 文件

<body>
<% 
    URL url = new    
            URL("http://localhost:8080/ServletToCloud/JSPToServletToCloudServlet");
    URLConnection conn =url.openConnection();
            conn.setDoOutput(true);

    BufferedWriter bw= new BufferedWriter( new OutputStreamWriter( 
            conn.getOutputStream() ) );
    bw.write("username= Shanx");
            out.flush();
            out.close();
    %>
</body>

这是我的 servlet 类

   @SuppressWarnings("serial")
   public class JSPToServletToCloudServlet extends HttpServlet 
   {
    private final static String _USERNAME = "username";
    protected void doGet(HttpServletRequest request, HttpServletResponse response)   
        throws ServletException, IOException 
        {
    PrintWriter out = response.getWriter();
            String username = request.getParameter(_USERNAME);

            response.setContentType("text/html");
            out.println("HelloWorld");
            out.println("Hello " + username);
            out.close();
    }   

这是 web.xml 文件

  <servlet>
    <servlet-name>JSPToServletToCloud</servlet-name>
    <servlet-class>pack.exp.JSPToServletToCloudServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>JSPToServletToCloud</servlet-name>
    <url-pattern>/jsptoservlettocloud</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>
 </web-app>

我的 Jsp 文件位于动态 Web 应用程序中,并且正在向 Web 应用程序项目中的 Servlet 发送一个字符串。我在 apache tomcat 服务器上运行动态 Web 应用程序项目,在服务器启动后,我将我的 Web 应用程序项目作为 Web 应用程序运行并检查本地主机并获得空值。

帮帮我。

【问题讨论】:

  • 您的 Servlet 中有 doPost 方法吗?由于conn.setDoOutput(true);,您的 JSP 代码应该发出 POST 请求。
  • [这是一篇不错的帖子][1] [1]:stackoverflow.com/questions/2793150/…你应该先搜索一下。希望这会有所帮助
  • @Sotirios Delimanolis 是的,我尝试过使用 doPost,它也只给出 null
  • 这是因为您从未在请求​​中发送"username" 参数...
  • @ Luiggi Mendoza :为此我必须写“localhost:8080/ServletToCloud/…”,尝试后我仍然得到空值

标签: java jsp servlets


【解决方案1】:

您必须在会话中输入用户名,因为您没有在请求中设置用户名。

将用户名放入会话和服务器端写入:-

 HttpSession session = request.getSession();
 String username = session.getAttribute("username")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2014-10-01
    • 2013-11-25
    • 2012-05-03
    相关资源
    最近更新 更多