JSP開發中的常用技巧

來源:互聯網
上載者:User

 

1.在不同頁面或者使用者之間共用資料
同一使用者,不同頁面之間共用資料
*把資料儲存在Session中;
 1)javaBean的scope="session";
 2)session的setAttribute()和getAttribute();
*通過cookie;
 1)new Cookie()和response.addCookie();
*通過隱含的表單;
 2)<input type="hidden" name="" value=""/>;
*通過ServletContext對象;
 1)JSP頁面中使用getServletContext()方法獲得ServletContext()即application;
 2)pageContext.setAttribute(String name, Object value, int scope);
*通過Application對象;
 1)application.setAttribute();
*通過檔案系統或者資料庫;
2.不同使用者之間共用資料
*通過ServletContext對象;
*通過Application對象;
*通過檔案系統或者資料庫;

getServletConfig() 
  
   在servlet初始化時,容器傳遞進來一個ServletConfig對象並儲存在servlet執行個體中,
   該對象允許訪問兩項內容:初始化參數和ServletContext對象,前者通常由容器在檔案中指定,
   允許在運行時向sevrlet傳遞有關調度資訊,比如說getServletConfig().getInitParameter("debug")
   後者為servlet提供有關容器的資訊。此方法可以讓servlet在任何時候獲得該對象及配置資訊。 

getServletContext() 

   一個servlet可以使用getServletContext()方法得到web應用的servletContext 
   即而使用getServletContext的一些方法來獲得一些值 
   比如說getServletContext().getRealPath("/")來獲得系統絕對路徑 
  getServletContext().getResource("WEB-INF/config.xml")來獲得xml檔案的內容
 
3.建立錯誤頁面
 1)使用errorPage和isErrorPage;
 2)使用
  <error-page>
   <error-code>404</error-code>
   <location>/pageNotFound.html</location>
  </error-page>
  <error-page>
   <error-code>500</error-code>
   <location>/internalError.html</location>
  </error-page>
  <error-page>
   <error-type>java.lang.NumberFormatException</error-type>
   <location>/NumberFormatException,html</location>
  </error-page>
  
4.國際化問題(Internationalization I18N)
 1)response.setHeader("Content-Language", "es");設定HTML要顯示的語言
  JDK中native2ascii工具,可以將漢字等語種轉換成UTF-8;
  
5.亂碼問題
 1)GB18030>GBK>GB2312;
 2)<%@ page contentType="text/html;charset=gb18030"%>
  request.setCharacterEncoding("gb18030");
 3)
   <%! String trans(String chi)
  {
                 String result = null;
                 byte temp [];
                 try
                 {
                         temp=chi.getBytes("iso-8859-1");
                        result = new String(temp);
                  }
                  catch(UnsupportedEncodingException e)
                  {
                          System.out.println (e.toString());
                  }
     return result;
  }
  %>
  
6.JSP檔案操作
 1)使用ServletContext
  InputStream in = getServletContext().getResourceAsStream("/file.txt");
  int temp = 0;
  String file = "";
  while((temp = in.read()) != -1) {
   file += (char)temp;
  }
  in.close();
 2)使用帶緩衝的BufferedReader
  BufferedReader buffer = new BuferedReader(new InputStreamReader(new BufferedInputStream(in));
  while(buffer.readLine() != null)
 3)
  BufferedReader = new BufferedReader(new FileReader("c:/as.txt"));
 4)寫入檔案
  PrintWriter writer = new PrintWriter(new BufferedWriter(new FileReader("c:/as.txt")));
  FileWriter("c:/asd.txt", true);

7.上傳檔案
 1)方法必須是post和enctype="multipart/form-data"
  <form action="" method="post" enctype="multipart/form-data"/>
  <input type="file" name="file2" size="20">
  
  <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
  <%@ page import="com.jspsmart.upload.*"%>
  <jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
  <html>
  <head>
  <title>上傳附件 </title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  </head>
  <body>
    <center>正在上傳檔案...
  
  <%
  
  //上傳附件
  
  try
  {
  
  mySmartUpload.initialize(pageContext);
  mySmartUpload.service(request,response);
  mySmartUpload.upload();
  String fn=fn=mySmartUpload.getFiles().getFile(0).getFileName();
  mySmartUpload.save("upload/");//檔案儲存的目錄為upload
  out.println("已經成功上傳了檔案,請查看<a href=upload/"+fn+">這裡</a>,看檔案是否上傳成功");
  }
  catch(Exception e)
  {
  e.printStackTrace();
  }
  
  %>
  <a href=FileUpload.html>重新上傳</a>
  </body>
  </html>
  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.