课外天地 李树青学习天地Java程序语言课件 → 课件22下载——servlet


  共有16081人关注过本帖树形打印复制链接

主题:课件22下载——servlet

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1939 积分:26594 威望:0 精华:34 注册:2003/12/30 16:34:32
课件22下载——servlet  发帖心情 Post By:2006/2/26 22:19:10 [只看该作者]

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编辑过]

 回到顶部