【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文件;

目录如下图:

   

      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

     &lt;Context reloadable="true"&gt;

 

         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("&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Server:Hello Client~&lt;/body&gt;&lt;/html&gt;");

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

&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;

 

&lt;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"&gt;

    &lt;servlet&gt;

        &lt;servlet-name&gt;servlethimi&lt;/servlet-name&gt;

        &lt;servlet-class&gt;HelloServlet&lt;/servlet-class&gt;

    &lt;/servlet&gt;

 

    &lt;servlet-mapping&gt;

        &lt;servlet-name&gt;servlethimi&lt;/servlet-name&gt;

        &lt;url-pattern&gt;/himi&lt;/url-pattern&gt;

    &lt;/servlet-mapping&gt;

 

    &lt;servlet-mapping&gt;

        &lt;servlet-name&gt;servlethimi&lt;/servlet-name&gt;

        &lt;url-pattern&gt;/xiaominghimi&lt;/url-pattern&gt;

    &lt;/servlet-mapping&gt;

 

&lt;/web-app&gt;

这里大概解释一下:

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

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

 

整个网页的源码如下:

1

&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Server:Hello Client~&lt;/body&gt;&lt;/html&gt;

OK,数据获取正常;

时间: 2024-10-26 14:25:44

【JAVA SERVLET 开发系列之二】创建WEBAPP详细步骤,通过SERVLET实现HTTP简单交互的相关文章

阿里云系列——1.域名创建(详细步骤)---2015-11.12

网站部署之~阿里云系列汇总   http://www.cnblogs.com/dunitian/p/4958462.html   1.购买域名(http://wanwang.aliyun.com/) 2.加入购物车 3.填写并结算 4.管理域名 http://netcn.console.aliyun.com/core/domain/list  5.域名证书(后面备案会用到)  

【java开发系列】—— JDOM创建、修改、删除、读取XML文件

有很多中操作XML文件的方法,这里介绍一下JDOM的使用方法和技巧. JDOM下载地址 创建XML文档 XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点.而每个子元素都是一个Element对象,对象可以向下包含. 1 因此我们可以通过先创建元素再将元素添加到父元素中,最后将顶层元素添加到根元素中. 2 创建完文档元素后,就可以把元素添加到document对象中,然后写入文件. 主要使用的函数: Element.setAttribute 为元素添加信息 Elemen

ASP.net控件开发系列之二

"生死有序" "装装孙子" 上篇文章<开篇>说了不少空洞的理论,这篇文章我还是先说说"大而化之"的东西:1.ASP.net控件(包括页面本身)的生命期的细节:2.如何开始一个控件的编写. "生死有序" ASP.net处理程序在接收到一个用户的页面请求后,它是如何变戏法把一个鲜活的页面呈现给客户端的呢?它都做了哪些事?按什么顺序做的? 要说明这个问题,我们首先要明白,一个页面它本身也是一个Control.从设计模式的

C#微信公众号开发系列教程二(新手接入指南)

原文:C#微信公众号开发系列教程二(新手接入指南) 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南)   微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微信服务器将接收到的消息post到用

hibernate-Hibernate 5.0.1 Final中怎么创建SessionFactory 详细步骤

问题描述 Hibernate 5.0.1 Final中怎么创建SessionFactory 详细步骤 新手求教,Hibernate 5.0.1 Final中怎么创建SessionFactory 这是我自己写的步骤,但是测试不行,提示 hibernate.properties not found: SessionFactory sessionFactory = null; Configuration configuration = new Configuration().configure();

javaweb Servlet开发总结(二)_java

一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: <servlet> <servlet-name>ServletConfigDemo1</servlet-name> <servlet-class>gacl.servlet.study.ServletConfigDemo1</servl

iOS多线程开发系列之(二)NSOperation

上一篇我们简单的对iOS多线程开发系列(一)三种多线程办法进行对比性能和操作的复杂度,并认真介绍了NSThread的使用. 我们借助上一次的例子完全可以采取NSOperation方法进行实现 NSOperation不具备封装操作的能力,必须使用它的子类: NSInvocationOperation NSBlockOperation 更简洁的Block实现方法,功能上与 NSInvocationOperation基本一致 自定义子类继承NSOperation,实现内部相应的方法 NSInvocat

【Qt编程】基于Qt的词典开发系列&amp;lt;二&amp;gt;--本地词典的设计

我设计的词典不仅可以实现在线查单词,而且一个重大特色就是具有丰富的本地词典库:我默认加入了八个类型的词典,如下所示: 由于是本人是通信专业,因此加入了华为通信词典.电子工程词典,又由于我喜爱编程,也加入了c语言基本函数词典.下面介绍如何设计本地词典: 词典类型的选择         当然是txt格式的最好了,因为我们可以用程序直接进行读取.可是网上词典一般都是用mdx格式.ld2格式的,我无法用Qt来直接读取.最终,经过不断摸索,网上查找,发现我们可以将mdx格式的词典通过软件转化为txt格式的

【JAVA SERVLET 开发系列之一】在MAC系统安装APACHE TOMCAT的详细步骤

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/java-servlet/845.html 对于Apache Tomcat 估计很多童鞋都会,那么今天就简单说下在mac上进行tomcat的安装:    第一步:下载Tomcat       这里Himi下载的tomcat version:7.0.27 直接上下载地址:http://tomcat.apache.org/download-70.