使用Session在JSP页面间传递表单内容

用 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+"/";
%>



 
  

 
 
 
 

  
   A :

  
   B :

  
   C :

  
  
 


 

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+"/";
%>



 
 
 
   <%
   List array=new ArrayList();    // List 用以保存表单中的每一个值
   array=(List)request.getAttribute("array");
   out.print("

Session save A,B,C :

");  //JDK
   for(String name:array)   //JDK1.4以后的版本支持的 foreach 语法
   {
   out.println(name);
   out.print("

");
   }
    %>
 

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.

  */
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }

 /**
  * The doGet method of the servlet.

  *
  * 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 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.

  *
  * 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.

  *
  * @throws ServletException if an error occurs
  */
 public void init() throws ServletException {
  // Put your code here
 }

}

 下图为我在my eclipse 下创建的Web project 结构图:

使用Session在JSP页面间传递表单内容_第1张图片

你可能感兴趣的:(使用Session在JSP页面间传递表单内容)