基于Java的webapp_第一个 JAVA WEB 应用

第一个 JAVA WEB 应用

注意:本文的基本条件是基于Tomcat的常规 java web开发,web 开发的模式非常对,种类也非常多,切勿对号入座。

接上一篇文章,本章讲解下搭建第一个Java Web应用。当然,如果只是导入运行完事,那么没必要看这篇文档,因为我向稍微细致讲解下,以方便读者更加清楚的理解下原理。

事实上我写这篇文章是有一定个人想法的,有那么一段时间,我接触过一些刚接触java web的小伙伴(新手也行,菜鸟也罢), 很大部分人有一个共性,就是一上来就要搞大框架,什么SSH框架,什么SSM框架,这一点我其实很反对,当然我并不反对用框架,只是觉得没有比较刚一上来就要去接触什么大框架,很多人就是在这些框架中把自己搞混了,以至于很快从入门到放弃, 所以,这篇文章我要讲的是很原始的java web,没有任何框架,就是希望你读了之后能对jiava web有更加直观的认识,并且多说一句,一旦你能够形成这个直观且清醒的认识,你会发现,那些所谓的框架,其实都是基于此而开发的,无非就是简化开发周期,加快效率罢了,甚至到最后,你更想自己手撸一套自己的框架。

看过别人的代码的小伙伴肯定对 web.xml 这个文件有映像, 开发java web, 第一点,也是至关重要的一点,就是要正确理解web.xml 文件,下面是一个web.xml的文件示例,为了突出重点,很多其他边边角角的配置我都没加,这样才能更加突出核心。

WebDemo

TestServlet

com.webdemo.servlet.TestServlet

TestServlet

/TestServlet

先脑补一个场景,一次http请求具体的流程应该是什么:

浏览器发出http请求 -> 服务器接收请求 -> 服务器找到可以处理该类的方法 -> 处理请求 -> 返回结果给浏览器

可能不全面,但是基本上就这个流程,那么在这个流程中,我们用到的 Tomcat 就充当了服务器这个角色,那么流程的第三阶段“服务器找到可以处理该类的方法”显得非常重要,服务器凭什么去找到这个方法,凭的就是web.xml 的配置,注意看在 web.xml 中有一对标签和标签。

TestServlet

com.webdemo.servlet.TestServlet

TestServlet

/TestServlet

注意在 和 标签中都定义了一个 , 并且他们的值都一样(这里均为 TestServlet), 像这样的拥有相同值的servlet 和 servlet-mapping 构成一对请求处理对应关系,怎么构成的呢。

首先, 在 标签中,有一个 标签,该标签中的值 /TestServlet 代表的意义就是uri path, 也就是我们实际通过浏览器访问的路径。

例如,在浏览器中输入: http://127.0.0.1:8080/MyWebapp/TestServlet, 那么 tomcat 解析出来的 uri 就是/TestServlet .

然后通过这个值找到对应的中的servlet-name的值, 也就是TestServlet:

TestServlet

/TestServlet

接着根据这个值找到对应的,也就是:

TestServlet

com.webdemo.servlet.TestServlet

然后在这个标签中找到中的值, 也就是 com.webdemo.servlet.TestServlet, 很明显,这是一个java类,然后Tomcat会去找到这个类来处理我们发出的请求。

接下来就是进入这个类,看具体怎么去处理,先看代码:

public class TestServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

resp.setContentType("text/html;charset=utf-8");

PrintWriter writer = resp.getWriter();

writer.println("hello");

writer.close();

}

}

这个类需要继承 HttpServlet 在里面, 该类里面有一堆函数,类似于 doGet, doPost这些, 对应与不同的请求类型,例如如果是get方法的请求,那么会自动调用doGet方法。那么只需要在这个基础上继续写你的逻辑就行了。

是不死很简单,只要整个流程及逻辑关系理清楚了,其实一点也不复杂,那么回过头来,开始的时候,提了一句那些很牛逼的的框架,像SpringMVC, 其实也是基于这个来完成的,那么现在我们就来看看SpringMVC这个框架怎么用,使用SpringMVC时的第一个配置如下:

springmvc

org.springframework.web.servlet.DispatcherServlet

1

contextConfigLocation

classpath*:springmvc-servlet.xml

springmvc

/

注意看,其实也是一对和 组合,这个配置的意思是,所有的请求都转发到org.springframework.web.servlet.DispatcherServlet这个配置去处理,实际上,这个所谓的org.springframework.web.servlet.DispatcherServlet类,其实实质上和我们上面写的servlet类是一样了,只不过它更加复杂,更加牛逼。

所以,只要你精力足够,自己写一套框架实际上也不难吧,SpringMVC不也是基于这些基础的东西做的嘛。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值