文章目录
Java web概述——简介&相关概念
前言:什么是Java web?
Java web是指用java技术来解决web互联网领域的技术栈。一个web项目包含了web客户端与web服务器端两个部分(即我们常说的前端、后端),web客户端的技术主要有HTML,CSS,JavaScript等等,web服务端的技术主要有Servlet,JSP,以及Spring框架等很多技术,其中后端的一些技术就是我们所说的Java web。
Internet上供外界访问的Web资源分为:静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。静态web资源开发技术:HTML、CSS。动态web资源开发技术:JavaScript、JSP/Servlet、ASP、PHP等。在Java中,动态web资源开发技术统称为Java web。(来源——百度百科)
一个动态的Web是怎样运行的?
客户端和Web服务器(比如我们常说的Tomcat)通过HTTP协议进行通信。Web服务器也叫HTTP服务器或Web容器。HTTP协议采用请求/响应模式。即客户端发起HTTP请求,web服务器接收并解析处理HTTP请求,然后将HTTP响应发送给客户端。
上图中的Web服务器是一个软件程序,比如Tomcat服务器,本质上是一个软件,而单说服务器的话才指的是硬件设备,一个主机。Web服务器用来管理web应用,当客户端发出了HTTP请求,web服务器接收到请求以后,会调用对应的web应用程序进行处理,然后web服务器将处理的结果再通过HTTP协议返回给客户端。
JavaWeb中不得不知道的概念
Tomcat:
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求。(来源——百度百科)
安装Tomcat:
在官网下载压缩文件。

解压缩,会得到如下的文件夹。
bin:存放各个平台下启动和停止Tomcat服务的脚本。conf:存放Tomcat的配置文件。
lib:存放Tomcat服务器所需要的jar包。
webapps:存放允许客户端访问的资源(java程序)。
在Java Web工程中配置Tomcat:
以IDEA为例,选择java enterprise,在Project template中选择Web application。

在Application server中选择new --> tomcat server。
在弹出的页面选择刚刚解压出来的Tomcat文件夹,这样就将Tomcat服务器配置到了IDEA的JavaWeb工程中。
Servlet:
Servlet是什么?
Servlet是Java Web开发的基础,与平台无关的服务器组件,运行在Servlet容器(Web服务器,Tomcat),负责与客户端和服务端进行通信。
Servlet能做什么?
- 创建并返回基于客户请求的动态HTML页面。
- 与数据库进行通信。
怎样使用Servlet?
Servlet是一组接口,我们去实现Servlet接口,让他能接受客户端的请求以及做出响应。但是浏览器不能直接访问Servlet,需要通过映射的方式间接访问Servlet,也就是说我们要给Servlet配置一个地址,通过这个地址再来访问Servlet。映射的配置方式有两种:1.通过注解,2.修改.xml配置文件。
import javax.servlet.*; import java.io.IOException; @WebServlet("/test-servlet") public class TestServlet implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException { } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }上面代码中的
@WebServlet("/test-servlet")就是通过注解的方式给Servlet配置了一个地址,通过修改.xml文件也可以做到同样的效果,比如下面这样:<servlet> <servlet-name>test</servlet-name> <servlet-class>com.example.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <servlet-pattern>/test-servlet</servlet-pattern> </servlet-mapping>当前Servlet的类名字是TestServlet,放在了com.example包下,映射地址是test-servlet,那么通过浏览器访问test-servlet就可以映射到TestServlet。
Servlet的生命周期:
Servlet创建以后给了我们六个方法让我们来实现,实际上真正有用的方法一共有三个,即
init(),service(),destory(),他们是Servlet的生命周期方法。init()方法只调用一次,初始化对象。service()调用n次,每访问一次Servlet都会调用service()方法,用来处理业务逻辑。destory()方法只调用一次,用来销毁对象。
HttpServlet:
在实际的开发中我们并不需要自己实现Servlet中的方法,只需要继承HttpServlet,可以简单理解为它已经帮我们实现好了Servlet接口,使用的时候只需要重写其中的doGet(),与doPost()方法就可以了。
Servlet的层次结构:
Servlet --> GenericServlet --> HttpServlet
更为准确的说法是:GenericServlet实现了Servlet接口,它屏蔽了不常用的方法,子类只需要重写service()方法;HttpServlet又继承了GenericServlet,里面含有doGet(),与doPost()两个方法,它根据请求类型进行分发处理,浏览器发来的get请求交给doGet()处理,post交给doPost()处理。
HttpServlet示例:
首先在HTML页面定义一个
form表单。<form action="test-servlet" method="post"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" name="action" value="登录"> </form>action指定了此表单要请求test-servlet处理,method指定了此表单以post请求的方式发送给Servlet。当用户点击”登录“按钮以后,浏览器会将表单通过HTTP协议发送给Tomcat,Tomcat会调用test-servlet所映射的HTTPServlet类,并根据表单中method属性确定由doGet()还是doPost()方法来处理这个表单。import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet("/test-servelt") public class TestServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Ta点了登录"); } }用户每访问一次Servlet,都会调用其中的
doPost()方法,在控制台上输出:”Ta点了登录“。
JSP:
JSP全称为Java Server Pages,指的就是java服务器端页面。我们可以理解为它就是一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码。浏览器是不能直接处理.jsp文件的,当我们访问.jsp文件的时候,Tomcat会先把它转换成Servlet,再将要展示的页面返回给浏览器。
MVC:
MVC指的是应用设计框架,用于应用的分层开发。MVC全称是Model-View-Controller(模型,视图,控制器),它将我们的代码分为了三个层次,实现了代码的分离。最典型的MVC就是jsp+servlet+javabean模式,jsp只用来展示数据,servlet用来接收并处理用户的请求,javabean作为模型,用来封装数据业务。
- Model:程序需要操作的数据或信息。
- View:提供给用户的操作界面。
- Controller:负责根据用户从"View层"输入的指令,选取"Model层"中的数据,然后对其进行相应的操作,产生最终结果。

Java Web目前流行的技术
(1)JSP:
JSP的代码是嵌入在网页中的,相对目前流行的前后端分离的开发模式来说,已经逐渐被淘汰掉了。虽然我所在的大学JavaEE这门课仍然在教JSP技术,但是除了应付考试以外,并不建议过分深入的学习。但是对于Servlet的掌握还是必要的,他是Java Web的基石,为我们学习新的技术打下基础。
(2)Spring:
Java三大框架中的其中一个,Spring 是目前主流的 Java Web 开发框架。Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。(——来源:百度百科)
(3)Spring Boot:
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。(——来源:百度百科)
