转载

My JSP的基础示例

安装和测试Tomcat
安装Tomcat后,就可以得到下列目录结构:
Jakarta-tomcat-
bin                    可执行文件
common            内部类和web程序共享的类
classes          共享的Java类
endorsed      已注释的Java类
lib                共享Jar文件
conf                  配置文件
logs                  服务器的记录文件
server               Tomcat内部的类
shared               共享的文件
temp                 临时的文件
webapps            web程序的目录
work                 临时文件的临时目录

对web开发人员而言,最中要的目录是webapps,浏览器要读取的文件都存放在这里。我们首要的目标是让Tomcat能运作,在运行Tomcat之前,必须先设定环境变量:
JAVA_HOME――设为java的安装目录,也就是java bin目录的上层目录。
CATALINA_HOME――设为Tomcat的安装目录,也就是Tomcat bin目录的上层目录。

运行Tomcat。现在,Tomcat在运行了,打开浏览器,连接到http://localhost:8080,应该会打开Tomcat的欢迎页面。这个URL里头的“localhost”就是指本地的网页服务器(对应到IP地址127.0.0.1),而8080是端口号,网页服务器通常是用80端口,但是Tomcat为类避免和其他服务器冲突,于是改用8080。

建立新的Web服务器目录:

可以将Tomcat服务器所在计算机的某个目录设置为一个Web服务目录,并为该Web服务目录指定虚拟目录,即隐藏Web服务目录的实际位置,用户只能通过虚拟目录访问Web服务目录中的Jsp页面。通过修改Tomcat服务器安装目录下conf目录中的server.xml文件来设置新的Web服务器目录。假设要将D:/MyJsp/star和C:/sun作为Web服务目录,并让用户分别使用hello和moon虚拟目录访问web服务目录D:/MyJsp/star和C:/sun下的Jsp页面,应先应用记事本打开文件夹Tomcat/conf中的主配置文件server.xml,找到出现</HOST>的部分(server.xml文件尾部),然后在</HOST>的前面加入如下内容:
<Context path = “/hello” docbase = “D:/MyJsp/star” debug = “0” reloadable = “true”/>
<Context path = “/moon” docbase = “C:/sun” debug = “0” reloadable = “true”/>
注:xm文件区分大小写的。

主配置文件server.xml修改后,必须重新启动Tomcat服务器。这样,用户就可以将JSP页面存放到目录D:/MyJsp/star或C:/sun中,可以通过虚拟目录hello或moon访问JSP页面,如将A.jsp放在目录D:/MyJsp/star或C:/sun中,应在浏览器地址栏中输入http://127.0.0.1:8080/hello/A.jsp或http://127.0.0.1:8080/moon/A.jsp。

设置端口号:
8080是Tomcat服务器的默认端口号。我们可以通过修改Tomcat服务器的conf目录下的主配置文件server.xml来更改端口号。用记事本代开server.xml文件找到如下部分:
<Connector port = “8080” maxHttpHeaderSize = “8192” maxThreads = “150” minSpareThreads = “25” maxSpareThreads = “75” enableLookups = “false” redirectPort = “8443” acceptCount = “100” connectionTimeout = “20000” disableUploadTimeout = “true”>

将其中的port=”8080”更改为新的端口号既可,如改为”9080”等。如果Tomcat服务器所在的计算机没有启动其他占有端口80的网络程序,也可以将Tomcat服务器端口号设置为80,这样用户在访问JSP页面时可以省略端口号,”http://127.0.0.1/first.jsp”。(这样写是因为我们是把firt.jsp非那根在ROOT根目录中,所以没有顶级目录,直接就是页面文件)

开发JSP:

以eclipse来编写不需要编译的JSP文件按,是最简单的。这些文件可以把java程序包在“小脚本元素”(Scriptlet element)、“声明元素”(declaration element)以及“表达式元素”(expression element)。最常用的是小脚本元素,可以把好几行的java程序包起来。小脚本元素的开头和结尾是“<%”和“%>”这两种标记符号,例如下例。你可以用out对象的println()方法把文字送回给浏览器。示例代码myJsp.jsp:

  1. <html> 
  2. <head> 
  3. <title>A Web Page</title> 
  4. </head> 
  5. <body> 
  6. <h1>Working With JSP</h1> 
  7. <%out.println("Using JSP");%> 
  8. </body> 
  9. </html> 

要怎么安装myJsp.jsp,Tomcat才能将之提供给客户端的浏览器?示例:我们在Tomcat的webapps目录下另建一个名为myJspc的子目录,而这个新的myJspc目录也必须有一个名为WEB-INF的子目录,其中再含classes和lib这两个子目录:
Webapps
myJspc            存放范例的文件夹
WEB-INF    有关web应用程序的信息
classes     web应用程序是用的java类
lib            web应用程序是用的jar文件

此时,WEB-INF、classes、lib目录都是空的,但是一定要存在,不然Tomcat不会把myJspc目录视为存储网页文件的有效目录。创建这些目录之后,将myJsp.jsp存放到myJspc目录下。然后,如果Tomcat正在运行,先关掉,在重新启动。

要察看Jsp文件,可以让浏览器连接到http://localhost:8080/myJspc/myJsp.jsp。Tomcat会把Jsp的java程序代码转译成Servlet的形式,编译后,再运行它,然后,你就能看到网页展示的结果。

开发Servlet:

Jsp服务器实际上是建立在Java Servlet的基础上,运行前先转译成Servlet。Servlet是纯粹的java程序,下面是一个Servlet的范例myServlet.java:

  1. package org.eclipsebook.ch09;  
  2. import java.io.*;  
  3. import javax.servlet.*;  
  4. import javax.servlet.http.*;  
  5. public class myServlet extends HttpServlet{  
  6.          private static final long serialVersionUID = 1L;  
  7.          public void doGet(HttpServletRequest request,  
  8.                             HttpServletResponse response)  
  9.          throws IOException, ServletException  
  10.          {  
  11.                    response.setContentType("text/html");  
  12.                    PrintWriter out = response.getWriter();  
  13.                    out.println("<HTML>");  
  14.                    out.println("<HEAD>");  
  15.                    out.println("<TITLE>");  
  16.                    out.println("A Servlet Example");  
  17.                    out.println("</TITLE>");  
  18.                    out.println("</HEAD>");  
  19.                    out.println("<BODY>");  
  20.                    out.println("<H1>");  
  21.                    out.println("Working With Servlets");  
  22.                    out.println("</H1>");  
  23.                    out.println("Using servlets");  
  24.                    out.println("</BODY>");  
  25.                    out.println("</HTML>");  
  26.          }  
  27.          public static class test{  
  28.                    public static void main(String[] args){  
  29.                      System.out.println("inner class test.");  
  30.                    }  
  31.          }  

像以上的Servlet都需要基于javax.servlet.http.HttpServlet类,而且只是改写doGet()方法。这个doGet()方法会 一个请求对象(request object),其中的数据包括了浏览器的种类及来自任何HTML控件的数据。另外还有一个响应对象(response object),可以让你把想响应的结果返回给客户端浏览器。在此例中,我们要以response对象的getWriter()方法来取得printWriter对象,以之来响应浏览器,而且以PrinterWriter对象的println()方法把HTML送回给浏览器。接下来的步骤是:首先,创建一个myServlet项目,再把上列程序输入该项目中,保存成myServlet.java,包名是org.eclipsebook.servlet。为类满足import语句所导入的内容,我们要把Tomcat随附的servlet.jar加入到编译路径中。你可以在jakarta-tomcat/common/lib/servlet.jar找到servlet.jar。将其加进编译路径中。
Webapps
myServlet
WEB-INF
classes
org
eclipsebook
servlet   Servlet        程序所在的目录
lib

为了让Tomcat知道这个新类是Servlet,你要用一个web.xml文件,保存该web程序的配置文件。在web.xml文件中我们用两个xml元素――<servlet>和<servlet-mapping>把URL myServlet连接到此Servlet实际的java程序。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/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Example Application</display-name>
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>org.eclipsebook.servlet.myServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>org.eclipsebook.servlet.myServlet</url-pattern>
</servlet-mapping>
</web-app>

输入上述xml文件的程序代码,保存web.xml,将之复制到WEB-INF目录下。最后,关闭Tomcat,重新启动它。http://localhost:8080/myServlet/org.eclipsebook.servlet.myServlet让浏览器连接到。

正文到此结束
Loading...