-- 作者:admin
-- 发布时间:2006/2/26 22:19:10
-- 课件22下载——servlet
1、Tomcat的使用 1)首先安装Tomcat,注意端口号不要和系统冲突 2)为了编译servlet文件,编译前要把<Tomcat>\\common\\lib\\servlet-api.jar放入<JAVA_HOME>\\jre\\lib\\ext中 3)建立servlet文件: import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter();
out.println("<html>"); out.println("<body bgcolor=\\"white\\">"); out.println("<head>"); out.println("<title>Hello!</title>"); out.println("</head>"); out.println("<body>"); out.println("Hello World!"); out.println("</body>"); out.println("</html>"); } } 4)编译后放入<Tomcat>\\webapps\\servlets-examples\\WEB-INF\\classes中 5)编辑<Tomcat>\\webapps\\servlets-examples\\WEB-INF\\web.xml文件,添加新的节点,如 <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> 6)访问可以直接在地址栏键入:http://localhost:8080/servlets-examples/HelloWorld 注意:使用时存在缓存,一定要修改一次,启动一次tomcat,并刷新浏览器
7)也可以自己建立新的根应用目录,目录结构应该和servlets-examples一样,将所有的servlet类放入WEB-INF\\classes中。更为合理的设计是有images、jsp、servlets和WEB-INF子目录,其中WEB-INF子目录下有classes、jsp目录和web.xml文件,将所有的servlet类放入classes中。这里的web.xml文件可以书写为: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"> <web-app> <display-name>My examples</display-name> <description>This is the Web application!</description> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> </web-app>
访问可以直接在地址栏键入:http://localhost:8080/webapp/HelloWorld
注意:如果映射为 <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> 可以发现只要键入webapp根目录,就会打开HelloWorld所对应的servlet 如果映射为 <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> 可以发现只要键入webapp根目录或者HelloWorld,就会打开HelloWorld所对应的servlet
8)显示汉字需要设置如下: response.setContentType("text/html;charset=GBK"); 注意此行必须在下面一行的前面! PrintWriter out = response.getWriter();
2、显示时间 代码为: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.Date;
public class exec extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); Date d=new Date(); out.println(d.toString() ); out.close(); } }
3、网页表单元素的使用 有网页: <html> <head> <title>Exec</title> </head> <body> <form method="get" action="http://localhost:8088/servlets-examples/exec"> <input type="text" name="T1" size="20"><P> <input type="submit" value="提交" name="B1"> </form> </body> </html>
其中form提交的网页就是action属性指定的网页,此时可以使用servlet来处理提交的数据,如: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.sql.*;
public class exec extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException { String value=request.getParameter("T1");
response.setContentType("text/html"); PrintWriter out=response.getWriter(); out.print("<html><body>"); out.print(value); out.print("</body></html>"); out.close(); } }
4、servlet链接数据库 注意:需要配置系统数据源SQLpubs,相应的数据库里面有一个名称为stu的表,并且至少具有两个字段:number和name
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.sql.*;
public class exec extends HttpServlet { private Connection connection; private String URL="jdbc:odbc:SQLpubs"; private Statement st; private ResultSet res; private ResultSetMetaData metaData; public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection=DriverManager.getConnection(URL,"",""); PrintWriter output=response.getWriter(); response.setContentType("text/html"); StringBuffer results=new StringBuffer(); st=connection.createStatement(); res=st.executeQuery("select * from authors"); metaData=res.getMetaData(); int numberOfColumns=metaData.getColumnCount(); results.append("<html><head><title>Database Exec</title></head>"); results.append("<body>"); for(int i=1;i<=numberOfColumns;i++) { results.append(metaData.getColumnName(i)+" "); } results.append(" "); while(res.next()) { for(int i=1;i<=numberOfColumns;i++) { results.append(res.getObject(i)+" "); } results.append(" "); } results.append("</body></html>"); st.close(); output.println(results.toString()); output.close(); connection.close(); } catch(Exception e) {} } }
5、结合网页表单处理的数据库网页 网页为: <html> <head> <title>Exec</title> </head> <body> <form method="get" action="http://localhost:8088/servlets-examples/exec"> <input type="text" name="T1" size="20"><P> <input type="submit" value="提交" name="B1"> </form> </body> </html>
servlet为: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.sql.*;
public class exec extends HttpServlet { private Connection connection; private String URL="jdbc:odbc:StuSQL"; private Statement st; private ResultSet res; public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection=DriverManager.getConnection(URL,"",""); response.setContentType("text/html;charset=GBK"); PrintWriter output=response.getWriter(); StringBuffer results=new StringBuffer(); st=connection.createStatement(); res=st.executeQuery("select name from stu where number=\'"+request.getParameter("T1")+"\'"); output.print("<html><head><title>Database Exec</title></head>"); output.print("<body>"); res.next(); output.print(res.getString(1)); output.print("</body></html>"); st.close(); output.close(); connection.close(); } catch(Exception e) {} } }
[此贴子已经被作者于2010-12-12 08:05:29编辑过]
|