簡體   English   中英

來自servlet的session.getAttribute並以html顯示

[英]session.getAttribute from servlet and display in html

我有一個登錄servlet,它從登錄html文件中獲取值並立即重定向到sessiondemo.html。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

  public class logIn extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res)
                      throws ServletException, IOException {

      res.setContentType("text/html");
      PrintWriter out = res.getWriter();
      HttpSession session = req.getSession(true);

      //getting the value(s) from HTML
      String fname = req.getParameter("fname");
      String lname = req.getParameter("lname");
      String email = req.getParameter("email");
      String address = req.getParameter("address");

      //Storing the values in Session
      session.setAttribute("FirstName", fname );
      session.setAttribute("LastName", lname );
      session.setAttribute("Email", email);
      session.setAttribute("address", address);

      res.sendRedirect("http://localhost:8080/apps/sessiondemo.html");
      out.close(); 
    }
  }

我不知道的是,我想在sessiondemo html中顯示名字和姓氏。 我知道代碼必須用seesiondemo html編寫,但是它不起作用。

這是我嘗試過的:

<% session.getAttribute("FirstName", fname);
        out.println("You are logged in as" + fname + "!");%>

XML文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <description>Test examples</description>
  <display-name>My Servlets</display-name>

 <servlet>
  <servlet-name>GET</servlet-name>
  <servlet-class>GET</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>GET</servlet-name>
  <url-pattern>/GET</url-pattern>
</servlet-mapping>

 <servlet>
  <servlet-name>POST</servlet-name>
  <servlet-class>POST</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>POST</servlet-name>
  <url-pattern>/POST</url-pattern>
</servlet-mapping>

 <servlet>
  <servlet-name>Cart</servlet-name>
  <servlet-class>Cart</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Cart</servlet-name>
  <url-pattern>/Cart</url-pattern>
</servlet-mapping>

<servlet>
  <servlet-name>logIn</servlet-name>
  <servlet-class>logIn</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>logIn</servlet-name>
  <url-pattern>/logIn</url-pattern>
</servlet-mapping>


</web-app>

對於會話,請嘗試使用此...

<% request.getSession().getAttribute("FirstName") %>

忘記腳本,避免使用它 改用表達語言

<div id="divUser">
    Welcome ${FirstName} ${LastName}
</div>

在這里, ${FirstName}將被存儲在以下范圍之一中的名稱為"FirstName"的屬性替換:

  • 頁面范圍
  • 要求范圍
  • 會議范圍
  • 適用范圍

這僅在JSP中使用時才有效。 HTML是靜態的,因此應用程序服務器不會對其進行編譯或評估,因此您將不會獲得任何結果。

更多信息:

您還應該指定至少使用Servlets 2.4來啟用表達語言。 當前,Servlet是3.1版,但是您可以在Jetty 9+安裝中使用Servlets 3.0。 更改您的web.xml文件,使該語句位於頂部:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0"> 

    <description>Test examples</description>
    <display-name>My Servlets</display-name>

    <!-- rest of the content of your web.xml -->

</web-app>

您可以在此處檢查jetty servlet版本的兼容性: Jetty版本比較表

不使用localhost,請用ip代替,例如:' http:// localhost:8080 / apps / sessiondemo.html '替換' http://127.0.0.1:8080/apps/sessiondemo.html ',然后重試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM