[英]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.