第一个jsp程序,做一个最简单的在浏览器中显示hello world,这个当然不是在index.jsp文件中的<body>标签中输入hello world这几个字符,我们使用Servlet来实现,在开发之前我们需要先下载一个j2ee的api文档(j2se的没有servlet类)下载地址:http://www.allimant.org/javadoc/ 在最下面的列表中选择“The Java Enterprise Edition 5 Tutorial”这个就可以了。
打开myeclipse,在src中新建java class,这一次的重点在于分析浏览器解析url的过程,所以,java代码就不再解释了
public class HelloWorldServlet extends HttpServlet{
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out=resp.getWriter();
out.println("<html><head><title>my first jsp:hello word</title></head>");
out.println("<body>my first jsp:hello world</body></html>");
out.flush();
}
}
之后是修改WebRoot->WEB-INF->web.xml在<web-app></web-app>之间添加如下代码:
<servlet>
<servlet-name>hello world</servlet-name>
<servlet-class>com.test.servlet1.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello world</servlet-name>
<url-pattern>/hello world</url-pattern>
</servlet-mapping>
代码稍后解释,现在启动tomcat服务器,在浏览器中输入:http://localhost:8080/test/hello world 就可以打开“my first jsp:hello world”的页面了。注意,这里的hello world是一种逻辑上的资源名,在物理存储地址中找不到这个hello world的文件名。
现在开始解释一下如何通过这个url,访问到我们编写的servlet类的,首先http://localhost:8080是默认的tomcat访问前缀,“/test”是我们在上一节说过的修改conf目录下的“server.xml”中的path的值
服务器解析到url的“/test”的时候便在server.xml文件中找到了path为“/test”的这条记录,并将这条记录中的 docBase的路径映射到物理路径,接下来开始访问“/hello world”这个资源,前面说过了,这个资源实际上是一个逻辑资源,物理存储地址中找不到这样一个文件名命名的文件,所以,服务器就找到了web.xml文件,这时拿“/hello world”与文件中的<servlet-mapping>里面的<url-pattern>标签进行匹配,匹配成功后,得到<servlet-name> 中的值,再拿这个值与<servlet>中的<servlet-name>标签匹配,匹配成功后,将<servlet-class>中的servlet项目的路径返回给浏览器,这样,浏览器就可以输出这个servlet中的内容了。