Servlet 3—— FirstServletWebApp

FirstServletWebApp的开发步骤

1、在CATALINA_HOME/webapps/目录下新建FirstServletWebApp文件夹,该文件夹就是该webapp的根。

2、在webapp的根下新建文件夹起名WEB-INF,必须全部大写,而且必须完全相同,这个文件夹是SUN制定的规范,名字是规范,位置也是规范。

3、在WEB-INF目录下新建一个文件夹必须叫做classes,这个文件夹的名字以及位置也是SUN制定的规范,这个文件夹下将来存放javaweb程序员开发的java的字节码文件。

4、在WEB-INF目录下必须有一个配置文件叫做web.xml,这个配置文件可以从其他项目中拷贝。该文件在Tomcat服务器启动的时候解析,所以这个文件如果编写的不合语法,启动Tomcat服务器的时候会出现XML文件的解析异常。如果这个文件解析失败,表示该webapp启动失败(Tomcat可以启动成功),一个webapp对应一个web.xml文件。一个合法的web.xml文件应该具备以下信息:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>

5、编写HelloServlet实现javax.servlet.Servlet接口并且重点实现service方法。l 编写java源程序,该java源程序可以在任意位置编写,只要将其编写java源代码编译生成字节码文件就可以。最终服务器执行的是字节码程序。执行的是classes目录中的字节码。(此时在WEB-INF目录下新建src文件夹,这不是必须的,不是SUN制定的规范)

6、将servlet-api.jar配置到环境变量classpath中。(只是让java源程序编译生成正常的字节码文件)

7、将HelloServlet.java源程序编译生成字节码,将字节码拷贝到classes目录下。

8、开始编写web.xml文件,如下所示:(web.xml文件中配置的标签是SUN制定的规范,标签不能随便写,因为Tomcat服务器已经编写了web.xml文件的解析程序,Servlet规范包括文件的名称、文件的位置、类、接口、配置文件编写方式等。)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
  <servlet>
    <servlet-name>firstServlet</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>firstServlet</servlet-name>
      <url-pattern>/servlet/hello</url-pattern>
      <url-pattern>/a/b/c/d/e/f</url-pattern>
  </servlet-mapping>
</web-app>

9、启动Tomcat服务器,打开浏览器在地址栏上直接输入URL访问Servlet,URL如下所示:注:一个servlet标签对应一个servlet-mapping标签,servlet标签和servlet-mapping标签通过servlet-name进行联系,所以servlet-name标签中的文本可以随意编写,只要一致即可。servlet-class标签配置servlet的完整类名,如果这个类有包名,必须添加包名。url-pattern主要编写请求路径,这个请求路径必须以“/”开始,只要以“/”开始即可,后续的具体路径可以随意(但是这个路径一旦定下来,浏览器向服务器发送请求的时候,超链接发送的请求路径必须和url-pattern中配置的路径一致),web.xml文件的配制主要作用是将“Servlet类名”和“请求路径”绑定在一起。

10、当然我们也可以编写HTML,在HTML中使用超链接发送请求,超链接的编写方式如下所示:

  • <a href="/FirstServletWebApp/servlet/hello">访问HelloServlet</a>
  • <a href="/FirstServletWebApp/a/b/c/d/e/f">访问HelloServlet</a>

11、路径总结:到目前为止路径共编写了两个:

  • 超链接中的路径
  • web.xml文件中的路径
  • 它们路径都是以“/”开始,都是使用了绝对路径,其中超链接上的路径比web.xml文件中的路径多一个“项目名称”

12、如果希望向浏览器输出HTML代码执行以下程序:

  • 设置响应的内容类型以及字符编码方式,解决响应中的中文乱码问题(必须在获取响应流之前设置)
  1. response.setContentType(“text/html;charset=GB18030”);
  • 获取响应流,该响应流执行特定的浏览器客户端(这个响应流不需要程序员手动关闭,Tomcat服务器管理。)
  1. PrintWriter out  = response.getWriter();
  • 打印
  1. out.print(); 或者out.println();  ,后者是将HTML源代码换行,如果希望网页中换行,需要使用<br>

13、webapp的固定目录如下所示:

 welcome.html

<html>
    <head>
        <title>welcome page</title>
    </head>

    <body>
        <a href="http://localhost:8080/FirstServletWebApp/ldp">HelloServlet</a>
    </body>
</html>

HelloServlet.java

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import java.io.IOException;

public class HelloServlet implements Servlet
{
    public void init(ServletConfig config) throws ServletException{
    
    }

    public void service(ServletRequest request,ServletResponse response) 
        throws IOException,ServletException{
        //输出到Tomcat服务器控制台
        System.out.println("Hello World!");
    }
    
    public void destroy(){
    
    }

    public String getServletInfo(){
        return null;
    }

    public ServletConfig getServletConfig(){
        return null;
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值