用?Session保存表單提交的內容,基本原理是用Session下的setAttribute()? 與 getAttribute() 方法來保存與獲取一個參數.
1.在MY ECLIPSE下創建一個WEB PROJECT,在默認路徑下建立兩個Session的JSP文件,其中Session.JSP用來提交表單內容, Session1.JSP用來獲取由Session保存的參數內容.
2. 創建一個servlet文件,用以處理由Session.JSP提交的表單內容,并將其放入request.setAttribute()方法中.
注:在servlet中不能直接使用Session下的setAttribute()? 與 getAttribute() 方法,在頭文件中必須包含javax.servlet.Http.*;?? 創建Session對象時要先聲明這個對象,使用語法為:
Http Session session=request.getSession();
具體代碼如下:
Session.JSP
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? <head>
??
? </head>
?
? <body>
? <form action="Form">
?? A :<input type="text" name="a" size=5><p>
?? B :<input type="text" name="b" size=5><p>
?? C :<input type="text" name="c" size=5><p>
?? <input type=submit value="Submit">
? </form>
? </body>
</html>
Session1.JSP
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
?
?
? <body>
?? <%
?? List<String> array=new ArrayList();??? // List 用以保存表單中的每一個值
?? array=(List<String>)request.getAttribute("array");
?? out.print("<h2>Session save A,B,C :</h2><p>");? //JDK
?? for(String name:array)?? //JDK1.4以后的版本支持的 foreach 語法
?? {
?? out.println(name);
?? out.print("<p>");
?? }
??? %>
? </body>
</html>
Form.java?? // servlet文件
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;
import javax.servlet.http.*;
import java.util.*;
public class Form extends HttpServlet {
?/**
? * Constructor of the object.
? */
?public Form() {
??super();
?}
?/**
? * Destruction of the servlet. <br>
? */
?public void destroy() {
??super.destroy(); // Just puts "destroy" string in log
??// Put your code here
?}
?/**
? * The doGet method of the servlet. <br>
? *
? * This method is called when a form has its tag value method equals to get.
? *
? * @param request the request send by the client to the server
? * @param response the response send by the server to the client
? * @throws ServletException if an error occurred
? * @throws IOException if an error occurred
? */
?public void doGet(HttpServletRequest request, HttpServletResponse response)
???throws ServletException, IOException {
??response.setContentType("text/html");
??PrintWriter out = response.getWriter();
??String a=(String)request.getParameter("a");
??String b=(String)request.getParameter("b");
??String c=(String)request.getParameter("c");
??List<String> array=new ArrayList();
??array.add(a);array.add(b);array.add(c);
??HttpSession session=request.getSession(true);
??session.setAttribute("array",array);
??request.setAttribute("array",session.getAttribute("array"));
??getServletConfig().getServletContext().getRequestDispatcher(
????"/session1.jsp").forward(request, response);
?}
?/**
? * The doPost method of the servlet. <br>
? *
? * This method is called when a form has its tag value method equals to post.
? *
? * @param request the request send by the client to the server
? * @param response the response send by the server to the client
? * @throws ServletException if an error occurred
? * @throws IOException if an error occurred
? */
?public void doPost(HttpServletRequest request, HttpServletResponse response)
???throws ServletException, IOException {
??doGet(request,response);
?}
?/**
? * Initialization of the servlet. <br>
? *
? * @throws ServletException if an error occurs
? */
?public void init() throws ServletException {
??// Put your code here
?}
}
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t">?下圖為我在my eclipse 下創建的Web project 結構圖:</v:shapetype>
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
