页面

2008-06-06

Program Clips and Templates

各种常用的代码片段,起个模板的作用,立此存照。
  1. HttpServlet:
    package pack.mine;

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


    public class HTTPServletTemplate extends HttpServlet {
    public void init () throws ServletException {
    // ....
    }

    public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

    res.setContentType("text/html");
    PrintWriter w = res.getWriter();
    w.println("<html><head><title>Hello World</title></head>");
    w.println("<body><h1>Hello World</h1></body></html>");

    w.flush(); // Commits the response
    w.close();
    }

    public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    // ...
    }

    public void destroy () {
    // ...
    }

    public String getServletInfo () {
    return "The servlet HTTPServletTemplate is a HttpServlet source code template.";
    }
    }
  2. Filter:
    package example.filters;

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


    public class ExampleResponseHeadersFilter implements Filter {
    private FilterConfig filterConfig = null;
    public void init(FilterConfig config) throws ServletException
    {
    this.filterConfig = config;
    ServletContext app = config.getServletContext();
    String myParam = config.getInitParameter("my-param");
    }

    public void destroy() {
    this.filterConfig = null;
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain nextFilter) throws ServletException, IOException {
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;

    nextFilter.doFilter(req, res);

    res.setHeader("Cache-Control","no-cache,post-check=0,pre-check=0,no-store");
    res.setHeader("Pragma","no-cache");
    res.setHeader("Expires","Thu,01Dec199416:00:00GMT");
    }
    }
  3. JSP头:
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

    <%@ page import="java.sql.Connection" %>
    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.sql.Statement" %>
    <%@ page import="java.sql.ResultSet" %>
    <%@ page import="java.sql.SQLException" %>
    <%@ page import="javax.naming.InitialContext" %>
    <%@ page import="javax.naming.NamingException" %>
    <%@ page import="javax.sql.DataSource" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>pasta test bed</title>
    <meta name="KEYWORDS" content="key0, key1" />

    <link href="css/strut.css" rel="stylesheet" type="text/css" />

    </head>
    <body>
  4. Filter和HttpServlet声明(必须按照filter,filter-mapping,servlet,servlet-mapping的顺序声明):
    <filter>
    <filter-name>XSLTFilter</filter-name>
    <filter-class>XSLTFilter</filter-class>
    </filter>
    <filter>
    <filter-name>HitCounterFilter</filter-name>
    <filter-class>HitCounterFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>HitCounterFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>XSLTFilter</filter-name>
    <servlet-name>FilteredFileServlet</servlet-name>
    </filter-mapping>
    <servlet>
    <servlet-name>FilteredFileServlet</servlet-name>
    <servlet-class>FileServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>FilteredFileServlet</servlet-name>
    <url-pattern>/ffs</url-pattern>
    </servlet-mapping>

  5. 用PreparedStatement执行批量数据库操作:
    try {
    // Disable auto-commit
    connection.setAutoCommit(false);

    // Create a prepared statement
    String sql = "INSERT INTO my_table VALUES(?)";
    PreparedStatement pstmt = connection.prepareStatement(sql);

    // Insert 10 rows of data
    for (int i=0; i<10; i++) {
    pstmt.setString(1, ""+i);
    pstmt.addBatch();
    }

    // Execute the batch
    int [] updateCounts = pstmt.executeBatch();

    // All statements were successfully executed.
    // updateCounts contains one element for each batched statement.
    // updateCounts[i] contains the number of rows affected by that statement.
    processUpdateCounts(updateCounts);

    // Since there were no errors, commit
    connection.commit();
    } catch (BatchUpdateException e) {
    // Not all of the statements were successfully executed
    int[] updateCounts = e.getUpdateCounts();

    // Some databases will continue to execute after one fails.
    // If so, updateCounts.length will equal the number of batched statements.
    // If not, updateCounts.length will equal the number of successfully executed statements
    processUpdateCounts(updateCounts);

    // Either commit the successfully executed statements or rollback the entire batch
    connection.rollback();
    } catch (SQLException e) {
    }

    public static void processUpdateCounts(int[] updateCounts) {
    for (int i = 0; i < updateCounts.length; i++) {
    if (updateCounts[i] >= 0) {
    // Successfully executed; the number represents number of affected rows
    } else if (updateCounts[i] == Statement.SUCCESS_NO_INFO) {
    // Successfully executed; number of affected rows not available
    } else if (updateCounts[i] == Statement.EXECUTE_FAILED) {
    // Failed to execute
    }
    }
    }
  6. 遍历Map:
    //JDK 1.5

    Map m = new HashMap();
    for (Object o : map.keySet()) {
    map.get(o);
    }
    //JDK 1.4

    Map map = new HashMap();
    Iterator it = map.entrySet().iterator();
    while (it.hasNext()) {
    Map.Entry entry = (Map.Entry) it.next();
    Object key = entry.getKey();
    Object value = entry.getValue();
    }

没有评论: