JNDI_Spring_TOMCAT5.5.25 ----------------------------------------------------------------------------------------------------------- 九个文件 ----------------------------------------------------------------------------------------------------------- tomcat-users.xml server.xml TOMCAT.xml Book.javas BookDao.java JdbcCodeBookDao.java web.xml test.java config.xml ----------------------------------------------------------------------------------------------------------- tomcat-users.xml <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="Tomcat"/> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="admin" password="pass" fullName="test" roles="admin,manager,role1,Tomcat"/> </tomcat-users> ----------------------------------------------------------------------------------------------------------- server.xml ----------------------------------------------------------------------------------------------------------- <!-- Global JNDI resources --> <GlobalNamingResources> <!-- Test entry for demonstration purposes --> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> <Resource name="jdbc/mysql" type="javax.sql.DataSource" password="admin" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://127.0.0.1/test" maxActive="4"/> </GlobalNamingResources> ----------------------------------------------------------------------------------------------------------- TOMCAT.xml ----------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/mysql" type="javax.sql.DataSource" password="admin" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://127.0.0.1/test" maxActive="4"/> </Context> ----------------------------------------------------------------------------------------------------------- Book.java ----------------------------------------------------------------------------------------------------------- public class Book { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ----------------------------------------------------------------------------------------------------------- BookDao.java ----------------------------------------------------------------------------------------------------------- import java.util.List; public interface BookDao { List<Book> queryAll(); } ----------------------------------------------------------------------------------------------------------- JdbcCodeBookDao.java ----------------------------------------------------------------------------------------------------------- import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.sql.DataSource; import org.springframework.dao.DataRetrievalFailureException; public class JdbcCodeBookDao implements BookDao { private DataSource dataSource; public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } public List<Book> queryAll() { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = dataSource.getConnection(); stmt = conn.createStatement(); rs = stmt.executeQuery("select * from user"); List<Book> books = new ArrayList<Book>(10); while (rs.next()) { Book book = new Book(); book.setId(rs.getString("id")); book.setName(rs.getString("name")); books.add(book); } return books; } catch (SQLException sqle) { throw new DataRetrievalFailureException("Retrieval failed.", sqle); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) {} } if (stmt != null) { try { stmt.close(); } catch (SQLException e) {} } if (conn != null) { try { conn.close(); } catch (SQLException e) {} } } } } ----------------------------------------------------------------------------------------------------------- web.xml ----------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java./xml/ns/j2ee" xmlns:xsi="http://www./2001/XMLSchema- instance" xsi:schemaLocation="http://java./xml/ns/j2ee http://java./xml/ns/j2ee/web-app_2_4.xsd"> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/mysql</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>test</servlet-name> <servlet-class>test</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/servlet/test</url-pattern> </servlet-mapping> </web-app> ----------------------------------------------------------------------------------------------------------- test.java ----------------------------------------------------------------------------------------------------------- import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class test extends HttpServlet { public test() { super(); } public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ApplicationContext context = new ClassPathXmlApplicationContext( "config.xml"); BookDao bookDao = (BookDao) context.getBean("jdbcCodeBookDao"); List list = bookDao.queryAll(); for (int i = 0; i < list.size(); i++) { Book book = (Book) list.get(i); System.out.println(book.getId() + ":" + book.getName()); } // System.out.println("==END=="); // } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the POST method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void init() throws ServletException { // Put your code here } } ----------------------------------------------------------------------------------------------------------- config.xml ----------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTO BEAN//EN" "http://www./dtd/spring-beans.dtd"> <beans> <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/mysql"/> </bean> <bean id="jdbcCodeBookDao" class="JdbcCodeBookDao"> <property name="dataSource" ref="dataSource" /> </bean> </beans> |
|