- 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.";
}
} - 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");
}
} - 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> - 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> - 用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
}
}
} - 遍历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();
}
Weekend
11 年前
没有评论:
发表评论