【Java Servlet 开发系列之二】创建WebApp详细步骤,通过Servlet实现http简单交互


本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/java-servlet/853.html

          ☞ 点击订阅 ☜
 本博客最新动态!及时将最新博文通知您!

创建一个webApp详细步骤如下:

      1.   在我们的tomcat目录下的webapps 下创建一个自定义目录,作为我们webapp的整个项目目录;这里Himi命名为MyWebApp;

 

      2.然后在 MyWebApp下继续创建一个“WEB-INF”文件夹(必须有),在WEB-INF下创建一个名字为”web.xml”文件(必须有),并且在WEB-INF继续放置一个名为“lib”文件夹(必须有) ,lib下主要用于放置第三方jar包,tomcat自动为我们加载;最后仍旧在WEB-INF中创建一个名为“classes”文件夹(必须有),整个classes文件夹主要用于放置我们编译好的servlet文件;

目录如下图:

【Java Servlet 开发系列之二】创建WebApp详细步骤,通过Servlet实现http简单交互_第1张图片

   

      3. 第二步中新建的web.xml只需要写入如下内容即可:

1
2
3
4
5
6
7
8
9
10
<? xml version = "1.0" encoding = "ISO-8859-1" ?>
 
< web-app xmlns = "http://java.sun.com/xml/ns/javaee"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                       http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   version = "3.0"
   metadata-complete = "true" >
 
</ web-app >

 

       4. 设置tomcat自动为我们监控目录是否有变化,有变化就自动为我们重新加载,设置方法:

在tomcat目录下,conf/context.xml 打开后将 <Context> 标签加入一个属性,如下:

1
< Context reloadable = "true" >

 

         5.编写我们第一个Servlet:

IDE 新建一个 Java Project,然后在此项目中加入servlet jar包,此jar包为:

xxx(你的tomcat目录)/lib/servlet-api.jar

 

         6. 新建一个类,继承HttpServlet 并且重写doGet, doPost两个函数,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
  * @author Himi
  */
public class HelloServlet extends HttpServlet {
 
     private static final long serialVersionUID = 1L;
 
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
             throws ServletException, IOException {
         // TODO Auto-generated method stub
         super .doGet(req, resp);
     }
 
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
             throws ServletException, IOException {
         // TODO Auto-generated method stub
         super .doPost(req, resp);
     }
 
}

OK, doGet和doPost 都有两个参数:

1). HttpServletRequest    表示客户端传过来的一个请求,然后被Tomcat包装成对象;

2). HttpServletResponse   表示对客户端的一个应答,将数据发送给客户端;

这里假设我们客户端使用get方式访问服务器,那么我们稍微修改下get函数如下:

1
2
3
4
5
6
7
8
9
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
         throws ServletException, IOException {
     PrintWriter pw  = resp.getWriter(); //得到一个输出流
     //写给Client端一个简单网页信息
     pw.println( "<html><head></head><body>Server:Hello Client~</body></html>" );
     pw.flush();
     pw.close();
}

 

        7. 这里我们虽然编写了一个Servlet,但是无法使用必须通过Tomcat使用,所以我们将刚刚编写的Servlet类找到其对应编译后的.class文件,然后放置我们在tomcat目录下自定义的MyWebApp/WEB-INF/classes文件夹下;

 

         8.修改web.xml让tomcat知道当客户端访问server时候知道什么时候调用使用我们的servlet,将web.xml内容修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<? xml version = "1.0" encoding = "ISO-8859-1" ?>
 
< web-app xmlns = "http://java.sun.com/xml/ns/javaee"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                       http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   version = "3.0"
   metadata-complete = "true" >
     < servlet >
         < servlet-name >servlethimi</ servlet-name >
         < servlet-class >HelloServlet</ servlet-class >
     </ servlet >
 
     < servlet-mapping >
         < servlet-name >servlethimi</ servlet-name >
         < url-pattern >/himi</ url-pattern >
     </ servlet-mapping >
 
     < servlet-mapping >
         < servlet-name >servlethimi</ servlet-name >
         < url-pattern >/xiaominghimi</ url-pattern >
     </ servlet-mapping >
 
</ web-app >

这里大概解释一下:

1)  <servlet-name> 标签是给你的servlet起个名字,整个名字是给tomcat来看的;

2) <servlet-class> 对应你编译后的servlet的类名;

3) <url-pattern> 整个标签主要是告诉tomcat,Client端访问我这个servlet而使用的字段是什么;

这里注意两点:

a)  <url-pattern>标签内容要以”/”开头;

b) 每个servlet可以对应很多个访问字段,比如这里我有两个 <servlet-mapping>对应两个访问字段”/himi”,”/xiaominghimi”

到此我们第一个简单的WebApp就完成了,然后我们测试一下;

首先启动tomcat  ,打开终端 startup.sh

然后打开你的safari 在地址栏敲入:

http://localhost:8080/MyWebApp/xiaominghimi

或者:

http://localhost:8080/MyWebApp/himi

都可以正常得到如下内容:

【Java Servlet 开发系列之二】创建WebApp详细步骤,通过Servlet实现http简单交互_第2张图片

 

整个网页的源码如下:

1
< html >< head ></ head >< body >Server:Hello Client~</ body ></ html >

OK,数据获取正常;


你可能感兴趣的:(java,tomcat,servlet,Safari,webapp,encoding)