0
点赞
收藏
分享

微信扫一扫

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


本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明:​​​​​

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

      1.  

 

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

目录如下图:

​​​​

   

      3.


​<?​​ ​​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目录下,conf/context.xml 打开后将 <Context> 标签加入一个属性,如下:


​<​​ ​​Context​​ ​​reloadable​​ ​​=​​ ​​"true"​​ ​​>​


 

         5.编写我们第一个Servlet:

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

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

 

         6.


​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函数如下:


​@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.

 

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


​<?​​ ​​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​​

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

整个网页的源码如下:


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


OK,数据获取正常;


举报

相关推荐

0 条评论