java web学习阶段_java web各阶段学习的重点 - CSDN
  • JavaWeb学习总结

    2019-09-18 13:53:42
    下面是JavaWeb学习阶段根据所学内容,完成网上商城项目后,做出的前端和后端的总结。

    下面是JavaWeb学习阶段根据所学内容,完成网上商城项目后,做出的前端和后端的总结。

    展开全文
  • Java学习路线图的第三个阶段Javaweb学习,在Java学习路线图前两个阶段学完后开始学习JavawebJavaweb学习目标是具备基本的JavaWeb开发能力,熟悉Linux服务器及相关软件的使用,可完成中小型企业级项目的开发...

    Java学习路线图的第三个阶段是Javaweb的学习,在Java学习路线图前两个阶段学完后开始学习Javaweb。Javaweb的学习目标是具备基本的JavaWeb开发能力,熟悉Linux服务器及相关软件的使用,可完成中小型企业级项目的开发需求。这个阶段学完后就可以考虑工作了,是不是很快?

    黑马程序员Java学习路线图的这个阶段需要你掌握JavaWeb开发基础知识,熟悉Java基本开发环境、 熟悉项目管理工具使用及Linux服务器使用,达到了这些才能满足Java软件开发行业的基本开发需求。

    黑马程序员 Javaweb学习技术要点

    MySQL

    1. 数据库的概念
    2. 常见的数据库软件
    3. MySQL数据库的安装卸载
    4. MySQL数据库的登录退出
    5. MySQL的目录结构
    6. SQL语句的分类
    7. 数据库和数据表的操作
    8. 数据的添加(insert)
    9. 数据的删除(delete)
    10. 数据的修改(update)
    11. 数据的查询(select)
    12. 数据的复杂查询
    13. 约束的使用
    14. 多表关系(一对一、一对多、多对多)
    15. 三大范式详解
    16. 数据库的还原和备份
    17. 多表查询操作
    18. 事务介绍
    19. 事务的隔离
    20. 数据库的用户管理和权限管理

    JDBC

    1. JDBC入门
    2. DriverManager类详解
    3. Connection类详解
    4. Statement类详解
    5. JDBC完成增删改查操作
    6. ResultSet类详解
    7. JDBC工具类的编写
    8. PreparedStatement类详解
    9. 使用JDBC完成事务管理
    10. 连接池的介绍
    11. c3p0连接池的使用
    12. druid连接池的使用
    13. 创建druid连接池工具类
    14. JDBCTemplate的使用

    HTML5&CSS3

    1.B/S架构
    2.HTML基本使用
    3.HTML常用标签
    4.CSS选择器
    5.常用样式
    6.盒子模型与布局
    7.HTML5新特性
    8.CSS3新特性

    JavaScript

    1.JavaScript基本语法
    2.JavaScript流程控制
    3.数组、函数、对象的使用
    4.JavaScript事件绑定/触发
    5.JavaScript嵌入方式
    6.JavaScript DOM操作
    7.DOM API
    8.JavaScript BOM对象及API

    jQuery

    1.jQuery快速入门
    2.jQuery语法详解
    3.jQuery核心函数
    4.jQuery对象/JavaScript对象
    5.jQuery选择器
    6.jQuery 文档处理
    7.jQuery事件
    8.jQuery动画效果
    9.jQuery的遍历

    XML

    1.XML用途
    2.XML文档结构
    3.XML基本语法
    4.DOM&SAX解析体系
    5.Jsoup节点查询
    6.Jsoup文档操作
    7.XPath语法
    8.XPath快速查询

    Web服务器基础

    1.HTTP协议
    2.Tomcat服务器搭建
    3.Tomcat目录结构解析
    4.Tomcat端口配置
    5.Tomcat启动&停止
    6.Tomcat&IDEA整合
    7.IDEA配置优化

    Servlet

    1.Servlet体系
    2.Servlet生命周期
    3.Servlet的XML配置和注解配置
    4.ServletConfig&ServletContext
    5.请求&响应
    6.HttpServletRequest对象和HttpServletResponse对象的API
    7.重定向&转发
    8.中文乱码解决方案
    9.项目路径问题

    Cookie&Session

    1.Cookie机制
    2.Cookie创建&使用
    3.Session原理
    4.Session的获取及使用
    5.Session失效
    6.Session作为域对象的API
    7.Session活化&钝化

    JSP

    1.JSP语法
    2.JSP原理
    3.JSP脚本片段&表达式
    4.JSP声明&指令
    5.JSP九大隐含对象
    6.域对象使用

    EL

    1.EL表达式简介
    2.EL使用
    3.EL取值原理
    4.EL的11大隐含对象
    5.EL执行运算
    6.EL函数库

    JSTL

    1.JSTL简介
    2.JSTL-核心标签库
    3.JSTL-函数标签库

    Filter&Listener

    1.Filter原理及配置
    2.Filter生命周期
    3.Filter链
    4.Filter登录验证
    5.Listener原理
    6.WEB中八大监听器的介绍
    7.ServletContextListener的应用场景

    文件上传和下载

    1.文件上传原理
    2.文件上传必要条件
    3.commons-io&commons-fileupload
    4.文件下载原理
    5.文件下载响应头
    6.文件下载中文乱码&浏览器兼容

    VUE

    1.VUE概述和MVVM说明
    2.VUE入门案例
    3.VUE的插值表达式
    4.VUE的v-on绑定点击事件
    5 . VUE的v-on键盘事件和阻止事件默认行为
    6 . VUE的v-on鼠标移动事件和阻止事件传播
    7 . VUE中的时间修饰符
    8 . VUE中的v-for的使用
    9 . VUE中的v-model的使用
    10. VUE中的v-show和v-if的使用
    11. VUE中的声明周期
    12. VUE的ajax的案例

    Maven初级

    1.Maven环境搭建
    2.Maven构建&自动化构建
    3.本地仓库&中央仓库
    4.Maven创建Web工程
    5.pom.xml、依赖管理
    6.坐标、依赖、生命周期等
    7.IDEA下的Maven使用

    Redis

    1.NoSQL&Redis入门
    2.Redis优势
    3.Redis安装&启动
    4.Redis五大数据类型和基本操作命令
    5.Redis总体配置Redis.conf
    6.Redis持久化(RDB和AOF)
    7.Jedis

    Linux

    1.Linux系统-基础
    2.Linux网络基础
    3.VMWare下安装Linux
    4.Linux命令
    5.Linux下Java环境的搭建
    6.Linux下Tomcat安装和配置
    7.Linux下MySQL 安装与配置
    8.Linux下部署黑马旅游网项目

    Nginx

    1.Nginx反向代理介绍
    2.Nginx 下载和安装
    3. Nginx 编译和启动、访问
    4.Nginx中部署静态网站

    展开全文
  • JavaWeb学习总结(一)——JavaWeb开发入门 此系列文章主要是为了回顾之前所学,以 参考文章为蓝本 慢慢 融入我所学的内容。 知识可能不够准确或者有错误。。。。请勿见怪,可以指正、指点,但别 乱说,谢谢。  ...

    参考:https://www.cnblogs.com/xdp-gacl/p/3729033.html

    JavaWeb学习总结(一)——JavaWeb开发入门

    此系列文章主要是为了回顾之前所学,以 参考文章为蓝本 慢慢 融入我所学的内容。 知识可能不够准确或者有错误。。。。请勿见怪,可以指正、指点,但别  乱说,谢谢。 

    目录

    JavaWeb学习总结(一)——JavaWeb开发入门

    基本概念

    1.1、WEB开发的相关知识

    1.2、WEB应用程序

    1.3、WEB发展史

    1.4、静态WEB

    1.5、动态WEB

    1.6、动态WEB应用的实现手段

    二、WEB服务器

    2.1、WEB服务器简介

    2.2、常见的Web服务器介绍

    三、搭建JavaWeb应用开发环境——Tomcat服务器

    3.1、疑问:学习web开发,为什么必须要先装一个WEB服务器?

    3.2、下载和安装Tomcat服务器

    3.3、启动和测试Tomcat服务器

    3.4、Tomcat启动常见问题


    基本概念

    1.1、WEB开发的相关知识

      WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
      Internet上供外界访问的Web资源分为:

    1. 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
    2. 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同

      静态web资源开发技术:Html
      常用动态web资源开发技术:JSP/Servlet、ASP、PHP等
      在Java中,动态web资源开发技术统称为Javaweb。

    1.2、WEB应用程序

      WEB应用程序指供浏览器访问的程序,通常也简称为web应用。例如有a.html 、b.html…..多个web资源,这多个web资源用于对外提供服务,此时应把这多个web资源放在一个目录中,以组成一个web应用(或web应用程序)
      一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
      Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射

    1.3、WEB发展史

      WEB发展的两个阶段:静态、动态

    1.4、静态WEB

      *htm、*html,这些是网页的后缀,如果现在在一个服务器上直接读取这些内容,那么意味着是把这些网页的内容通过网络服务器展现给用户。整个静态WEB操作的过程图如下:

      在静态WEB程序中,客户端使用WEB浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给WEB服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过WEB服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。

      静态WEB中存在以下几个缺点:

      1、Web页面中的内容无法动态更新,所有的用户每时每刻看见的内容和最终效果都是一样的。

      为了可以让静态的WEB的显示更加好看,可以加入了JavaScript以完成一些页面上的显示特效,但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。

      实现静态WEB客户端动态效果的手段:

    •  JavaScript
    •  VBScript

      --在实际的开发中几乎都是 JavaScript .

      2、静态WEB无法连接数据库,无法实现和用户的交互。

      使用数据库保存数据是现在大多数系统的选择,因为数据库中可以方便地管理数据,增删改查操作可以使用标准的SQL语句完成。

    1.5、动态WEB

      所谓的动态不是指页面会动,主要的特性的是:“WEB的页面展示效果因时因人而变”,而且动态WEB具有交互性,WEB的页面的内容可以动态更新。整个动态WEB操作的过程图如下:

      动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(谷歌、IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server Plugin(服务器插件)来处理,此插件用于区分是请求的是静态资源(*.htm或者是*.htm)还是动态资源。

      如果WEB Server Plugin发现客户端请求的是静态资源(*.htm或者是*.htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。

      如果WEB Server Plugin发现客户端请求的是动态资源(*.jsp、*.asp/*.aspx、*.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。

    1.6、动态WEB应用的实现手段

      动态WEB现在的实现手段非常多,较为常见的有以下几种:

    • Microsoft ASP、ASP.NET
    • PHP
    • JAVA Servlet/JSP   貌似还有一个 framemark

    1、Microsoft ASP、ASP.NET

      微软公司动态WEB开发是比较早的,而且最早在国内最流行的是ASP。ASP就是在HTML语言之中增加了VB脚本,但是标准的开发应用应该是使用ASP+COM,但是实际情况来看,在开发ASP的时候基本上都在一个页面中写上成百上千的代码,页面代码极其混乱。

      ASP本身有开发平台的限制:Windows+IIS+SQL Server/Access,ASP只能运行在Windows操作系统上,ASP现在基本上已经淘汰,现在基本上都是使用ASP.NET进行开发,ASP.NET在性能有了很大的改善,而且开发迅速,但是依然受限于平台。ASP.NET中主要是使用C#语言。

    2.PHP

      PHP开发速度很快,功能强大,跨平台(平台指的就是运行的操作系统),而且代码也简单。

    3.Servlet/JSP

      这是SUN公司(SUN现在已经被Oracle公司收购)主推的B/S架构的实现语言,是基于JAVA语言发展起来的,因为JAVA语言足够简单,而且很干净。

      Servlet/JSP技术的性能也是非常高的,不受平台的限制,各个平台基本上都可以使用。而且在运行中是使用多线程的处理方式,所以性能非常高。

      SUN公司最早推出的WEB技术推出的是Servlet程序,Servlet程序本身使用的时候有一些问题,所有的程序是采用JAVA代码+HTML的方式编写的,即,要使用JAVA输出语句,一行一行地输出所有的HTML代码,之后,SUN公司受到了ASP的启发,发展出了JSP(Java Server Page),JSP某些代码的编写效果与ASP是非常相似的。这样可以很方便地使一些ASP程序员转向JSP的学习,加大市场的竞争力度。

    二、WEB服务器

    2.1、WEB服务器简介

      1、Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。

      2、服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。

     

    2.2、常见的Web服务器介绍

      1、WebLogic

      WebLogic是美国bea公司出品的一个application server。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求,启动界面如图

      2、WebSphere

      WebSphere Application Server 是一种功能完善、开放的Web应用程序服务器,是IBM公司电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。这一整套产品进行了扩展,以适应 Web应用程序服务器的需要,范围从简单到高级直到企业级。启动界面如图:
     

      3、Tomcat

      TomcatTomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:

       4、IIS

      Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在ⅡS的平 台上。IIS提供了一个图形界面的管理工具,称为Internet信息服务管理器,可用于监视配置和控制Internet服务。

      IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

       学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。

    三、搭建JavaWeb应用开发环境——Tomcat服务器

    3.1、疑问:学习web开发,为什么必须要先装一个WEB服务器?

      在本地计算机上随便创建一个web页面,用户是无法访问到的,但是如果启动tomcat服务器,把web页面放在tomcat服务器中,用户就可以访问了。这说明什么问题?
      1、不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者
      2、WEB服务器就是这样一个程序,它用于完成底层网络通迅。使用这些服务器,We应用的开发者只需要关注web资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。

    3.2、下载和安装Tomcat服务器

      Tomcat官方站点:http://jakarta.apache.org

      下载Tomcat安装程序包:http://tomcat.apache.org/

      

      点击【Download】跳转到如下图所示的下载页面

       

    1. tar.gz文件是Linux操作系统下的安装版本
    2. exe文件是Windows系统下的安装版本
    3. zip文件是Windows系统下的压缩版本

      下载完成后,得到的是一个压缩包,将压缩包解压就可以完成Tomcat服务器的安装

      

      将压缩包解压后,得到的就是如下图所示的文件夹,这样就完成了Tomcat服务器的安装。

      

    3.3、启动和测试Tomcat服务器

      

      启动Tomcat服务器

        双击 bin 目录下的 startup.bat 文件启动Tomcat服务器

        

          

      测试Tomcat服务器

        打开浏览器,输入http://localhost:8080/,能显示如下界面代表安装成功。

        

    3.4、Tomcat启动常见问题

      导致Tomcat服务器无法正常启动的原因一般来说就是如下的两个:

      1、JAVA_HOME环境变量设置问题

        要想双击bin目录下的startup.bat文件启动Tomcat服务器,首先要做的就是在windows中设置JAVA_HOME环境变量,因为Tomcat服务器的启动需要用到这个JAVA_HOME环境变量,如果windows中不存在JAVA_HOME环境变量,则Tomcat服务器是无法启动的

      在Window中配置JAVA_HOME变量

        操作步骤(win7系统):计算机→右键“属性”→高级系统设置→高级→环境变量,如下图所示:

        

       

        

      点击系统变量下面的“新建”,弹出一个新建系统变量对话框,首先在变量名写上JAVA_HOME,顾名思义,JAVA_HOME的含义就是JDK的安装路径,,然后在变量值写JDK的安装路径,如这里设置的变量值是"D:\Program Files (x86)\Java\jdk1.7.0",设置好变量值之后,点击【确定】按钮,JAVA_HOME环境变量就设置完成,如下图所示:系统变量中多了一个"JAVA_HOME"变量。

        

      正常来说,学习Java开发的第一步就是配置Path环境变量,比较好的配置方式是先配置JAVA_HOME环境变量,然后在Path变量中使用"%JAVA_HOME%"引用JAVA_HOME变量的值。

        

      所以这个JAVA_HOME环境变量在Window中一般都是已经配置好了的,如果忘记配置JAVA_HOME环境变量,那么可以使用上述的方式配置

      2、端口占用问题

      因为Tomcat服务器启动时是需要默认是使用8080端口的,如果这个8080端口被别的应用程序占用了,那么Tomcat服务器就无法正常启动,看到的现象就是"Tomcat服务器启动界面会打印出异常错误信息,然后就自动关闭了",如下图所示:

      

      由于这个窗口从启动到关闭的时间非常短,我们很难通过这个窗口看到Tomcat启动时的报错异常信息,因此我们一般只能通过Tomcat服务器的记录的log(日志)信息去查看Tomcat服务器的运行情况。

      在Tomcat服务器的根目录下有一个logs文件夹,

      

      logs文件夹存放Tomcat 的日志文件,打开logs文件夹,可以看到里面的log文件,其中有一个以"catalina.yyyy-MM-dd.log"形式命名的log文件,例如"catalina.2014-05-17.log"日志文件就是记录Tomcat服务器2014-05-17这一天的运行情况。

      

      打开catalina.2014-05-17.log文件,看看里面的日志记录信息,

      

      日志信息里面清楚的记录了Tomcat服务器的运行情况,如果因为8080端口被占用而无法正常启动,就会记录如上图所示的异常信息,通过查看异常信息,我们就可知道Tomcat服务器为什么不能够正常启动了!

      总结:当Tomcat服务器无法正常启动时,首先检查是否配置了JAVA_HOME环境变量,然后再检查Tomcat服务器启动时的端口是否被别的应用程序占用了。

           如果因为8080端口被占用而无法正常启动,如何解决将在下一篇里说明!

    展开全文
  • 引言 初学java web 时的过程记录、重要知识积累以及经验总结。 本次为web入门和完成网页注册功能的阶段。 使用IDEA创建Java-web工程快速入门 IDEA_JAVA-WEB工程创建;...入门Java-web工程(含数据库)的框架结构;...


    引言
    初学java web 时的过程记录、重要知识积累以及经验总结。
    本次为web入门和完成网页注册功能的阶段。

    使用IDEA创建Java-web工程快速入门

    初次使用的一些实用设置

    1、设置字体大小:登录界面的Configure【配置】—— Settings——Editor——Font
    2、设置背景颜色:登录界面的Configure【配置】—— Settings——Editor——Color Scheme——General——Default【默认】
    3、设置打开IDEA时的默认操作:登录界面的Configure【配置】—— Settings——Appearance&Behavior——System Settings

    创建工程具体步骤

    1、Create New Project
    在这里插入图片描述点击方框操作;

    2、给工程命名,注意选择路径时最好直接创建在盘根目录下;

    3、配置Tomcat服务器
    运行下拉框——> Edit Configuration【编辑配置】 ——>先点击右上角的绿色加号——> 在左侧选择Tomcat Sever——> Local
    在这里插入图片描述redeploy【重新部署】

    4、添加第三方依赖
    1)先在WEB-INF文件夹下创建“lib”的文件夹(选择Directory),将自己需要的jar包添加到这个文件夹中(形成工程内部lib,而不用external);
    2)再打开 Project Structure,部署这些包:
    3)首先是点击左侧的Libraries,点击+,选择JAVA将之前加入“lib"的包导入,再将一些需要的external包导入,APPLY
    4)再选择左侧的Module, 在Dependencies勾选之前导入的jar包,APPLY;(还可以直接在Dependencies页面中点击右侧的绿色加号,选下拉框的第一个选项,手动添加jar包或者文件进入module)。

    5、#配置输出文件夹“classes”
    在idea中如果不修改class文件的输出路径的话,会默认在工程下创建一个“out文件夹”用来装编译的class文件[或者说是用来存放src目录下的文件(包括配置文件,只要在src目录下就会被加载到out里面)]。修不修改默认输出路径都可以,但修改编译文件的输出路径为WEB-INF下的classes似乎更规范?
    下面提供修改方法的链接:
    idea架构简述及输出文件配置.

    5、#检查工程结构左侧的 Artifacts和Facets
    Artifacts【人工品;artifact是一个项目资源的组合体。例如,一个已编译的java类的集合,一个已打包的java应用。】
    和Facets【面;Facets表述了在Module中使用的各种各样的框架、技术和语言,这些Facets让IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致。】
    下面提供 有关IDEA里Facets和Artifacts的讲解 的链接:
    IDEA里Facets和Artifacts的讲解.

    【注:能力有限,#号部分为不知是否必要的操作】

    入门Java-web工程(含数据库)的框架结构

    首先简要回顾JAVA中的interface和implement:

    Interface(接口)

    1、概念:
    接口与类属于同一层次,实际上,接口是一种特殊的抽象类。
    2、属性:
    (1)一个接口中,所有方法为公开、抽象方法;所有的属性都是公开、静态、常量。
    (2)一个类实现一个接口的格式: class IM implements IA{ }; 一个类实现接口,相当于它继承一个抽象类。
    (3) 类必须实现接口中的方法,否则其为一抽象类。 实现中接口和类相同。
    3、基础使用方法:
    (1)接口中可不写public,但在子类中实现接口的过程中public不可省。
    (2)一个类只能继承另外一个类,但是它可以继承多个接口,中间用“,”隔开。
    (3)接口和接口之间可以定义继承关系,并且接口之间允许实现多继承。
    (4)一个接口也可以“接”多个实现类,中间依旧是用“,”隔开
    4、作用:
    通过接口可以实现不同层次、不同体系对象的共同属性; 通过接口实现write once as anywhere.。( 以JAVA数据库连接为例子:JDBC制定标准;数据厂商实现标准;用户使用标准。)接口通常用来屏蔽底层的差异。 接口也因为上述原因被用来保持架构的稳定性。
    接口详解.
    接口类示例:

    public interface Userdao {
        /***
         * 用户登陆的方法声明
         * @param user
         * @return
         */
        public User login(User user);
        /***
         * 用户注册的方法声明
         * @param user
         * @return
         */
        public boolean register(User user);
    }

    Implement

    在java中implement是为了实现某个接口。
    例如:

    public class impleuser implements Userdao{
        @Override
        public User login(User user) {
            return null;
        }
                PreparedStatement pst = (PreparedStatement) conn.prepareStatement
                        ("insert into register values(?,?,?,?,?);");//?为占位符
                pst.setString(1, user.getUsername());//占位符索引从1开始!
                pst.setString(2, user.getSex());
                pst.setString(3, user.getPassword());
                pst.setString(4, user.getEmail());
                pst.setString(5, user.getTel());
                pst.executeUpdate();
                bool = pst.executeUpdate();
                conn.close();
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            if (bool == 0) {
                return false;
            }
            else return true;
        }
        }

    extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了
    比如:
    class A extends B implements C,D,E

    进入正题:工程结构

    第一层

    0、".idea"
    1、out文件(或是WEB-INF下的“classes”)
    存放编译时后的文件;实际运行的内容;内含src问价目录下的所有文件;不可编写
    笔者好多次工程不能正常运行,且查找代码并无错误,报错与当前编写不符,就是因为out文件没有更新!
    【希望有大佬留言帮忙解决这个问题】
    2、src
    后端文件
    3、web
    前端文件
    4、External Libraries

    第二层中的后端(src)

    src标准架构示例
    在这里插入图片描述
    【注:在工程量较小时,将接口类和对应的实现类放在同一个层次的包目录下也无妨。示例中servlet包实际上也可以写成controller包(层)】

    Java-web代码分层概要浅析&微软的 “三层架构”VS“MVC”

    在软件体系架构设计中,分层式结构是最常见和重要的。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。这也是Java Web中重要的三层架构中的三个层次。区分层次的目的即为了“高内聚低耦合”的思想。
    所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。

    第一、数据访问层 即DAO【Data Access Object】层,主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务。
    第二、业务逻辑层 即service层 主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
    第三、界面层 即controller层或action层,主要表示WEB方式。如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。当逻辑层和数据处理层高度分离出servlet时,servlet可以看作是该controller层中用来接收请求和返回响应的中间层。

    【注意将“三层架构”区分于传统的MVC架构,区别主要在于业务逻辑和controller上】

    Model-View-Controller

    • M:模型层,主要是负责一些具体的业务逻辑的实现。
    • V:视图层,可以理解为JSP页面。
    • C:控制器层,用于接受页面请求与响应请求到JSP页面的控制机制。dao、servlet

    相关链接: 浅谈JavaWeb项目代码如何分层.

    【笔者认为Java-web入门时只需要有适当水平的代码分层意识即可(不要把整个后端都写在一个servlet里),工程量较小时疲于分层不仅没有实用价值还会浪费时间,况且日新月异中代码架构也是在不断发展和演变的,我们要就事论事、实事求是。】

    Bean类【属于"M"层】

    JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:

    • 这个Java类必须具有一个无参的构造函数
    • 属性必须私有化
    • 私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范(set、get)。

    入门的Java bean类为我们具体操作对象的实体化提供了一个类的模板;模板中含有私有数据成员本身,以及它们各自的读取、设置的公用方法。
    代码示例:

    public class User { private int id;
        private String username;
        private String password;
        private String sex;
        private String email;
        private String tel;
        public User(){
            super();
        }
    
    //    public User(String tel, String name, String password, String sex , String email){
    //        this.tel = tel;
    //        this.username = name;
    //        this.password = password;
    //        this.sex = sex;
    //        this.email= email;
    //    }
       //1
        public String getSex()
        {
            return sex;
        }
        public void setSex(String sex1)
        {
            this.sex = sex1;
        }
    //2
        public String getUsername()
        {
            return username;
        }
        public void setUsername(String userName)
        {
            this.username = userName;
        }
    //3
        public String getPassword()
        {
            return password;
        }
        public void setPassword(String password)
        {
            this.password = password;
        }
    //4
        public String getEmail()
        {
            return email;
        }
        public void setEmail(String email) { this.email = email; }
    //5
        public String getTel()
        {
            return tel;
        }
        public void setTel( String tel1)
        {
            this.tel=tel1;
        }
    
    }

    DAO层

    释义见第一部分讲解,具体示例代码参见接口类与实现类部分的代码示例。

    JDBCUntil【Java DataBase Connectivity utiliy】

    Util是utiliy的缩写,是一个多功能、基于工具的包。
    该工具类基于数据库类型的不同也会不同。
    以mysql为例,贴出相关实现办法。

    
            Connection conn;
            //驱动
            String driver = "com.mysql.jdbc.Driver";
            //地址
            String addr = "jdbc:mysql://localhost:3366/test?useUnicode=true&characterEncoding=utf8";
            //用户名
            String username = "root";
            //密码
            String password = "";
            try {
                //加载驱动
                Class.forName(driver);
    
                //建立连接
                conn = (Connection) DriverManager.getConnection(addr, username, password);
                //判断是否连接
                if (!conn.isClosed()) {
    
                    System.out.println("连接成功");
                }

    Service 层

    该层属于业务逻辑处理层,在本次的“用户注册”案例中的“userservice”类主要是一个服务于user-bean的类,在该类的register外层函数中创建了一个user的bean实体对象,并调用了该对象的所有设置数据的函数,这些“set”函数被嵌套在一个含有参数的外层函数中,外层函数负责向内层的set函数传递参数。
    代码示例:

    import bean.User;
    
    public class serviceuser {
        public User register(String username, String sex, String password, String email, String tel){
            User user=new User();
            user.setUsername(username);
            user.setPassword(password);
            user.setSex(sex);
            user.setEmail(email);
            user.setTel(tel);
            return user;   //※注意返回的是一个user的实体对象
        }
    }
    

    当然,更加规范的做法是向dao层那样用一个接口类和一个实现类的组合来完成上述处理。
    这里的service逻辑处理只是入门的冰山一角,还不能明显体现出“逻辑”的处理,暂且只将它作为user的一个服务类即可。

    controller层(含servlet【Server Applet】 类)

    由于实例简单,在该工程的controller层中只有一个servlet类。
    在前面已经说过,dao层将底层数据操作从servlet中分离出去,jdbcutil将数据库连接操作从servlet中分离出去,userbean和userservice的组合实现了实体类的定义和服务,
    所以servlet应该更纯粹地专注于与前端的交互,充当界面层底端或是控制层顶端的角色,在其中运用doGet和doPost方法,实现:

    1. 客户端发送请求至服务器端;
    2. 服务器将请求信息发送至 Servlet;
    3. Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
    4. 服务器将响应返回给客户端。

    Servlet 是在服务器(如Tomcat)上运行的小服务程序。

    package controller;
    
    import bean.User;
    import dao.Userdao;
    import dao.impleuser;
    import service.serviceuser;
    
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet(name = "register", urlPatterns = "/register")//类似于web.xml的功能
    public class register extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) {
            
        }
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        {
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            String email=request.getParameter("email");
            String tel=request.getParameter("tel");
            String sex = request.getParameter("sex");
            serviceuser servicer= new serviceuser();//创建实体服务类的对象
            User newuser=servicer.register(username,sex,password,email,tel);//调用该对象中的函数创建一个bean的实体对象
            System.out.println("1"+username);
            System.out.println("2"+password);
            System.out.println("3"+sex);
            System.out.println("4"+email);
            System.out.println("5"+tel);//测试用
            Userdao dao=new impleuser();//创建dao的对象
            dao.register(newuser);//实现对数据库的操作
            try {
                response.getWriter().print("后台接受成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    servlet在这里似乎体现了后端集成的功能

    相关链接: doGet和doPost的区别.

    “(一)”结束语:水平有限,尽请指正

    2019年4月28日

    展开全文
  • javaweb学习路线【转】

    2016-06-16 21:23:38
    相信每一个学习java的朋友,都想知道真正的java高手该掌握哪些知识,都盼望着能早日跨入java高手的行列,那么从新手到高手java学习者会经历哪些阶段,java学到什么程度才算是高手,该学哪些内容,我结合网上搜索的...
  • JavaWeb学习路线

    2018-05-27 15:21:34
    JavaWeb学习路线第一阶段:第二阶段:第三阶段:第四阶段:第五阶段:第六阶段:第七阶段:原文地址
  • Servlet容器为JavaWeb应用提供运行时环境,管理Servlet和JSP的生命周期,以及它们的共享数据 Tomcat是较为流行的开源Servlet容器 Tomcat目录结构 bin文件夹: 存放Tomcat的脚本文件,很多环境变量也在此处设置 以.sh...
  • JavaWeb程序设计初级阶段酒店项目实战总结 ⑴.设计理念: 酒店项目具有实战性,有用户,前台,管理员多种角色,利用一年内学习的Java基础知识/JavaWeb/mysql/Jsp/Jquery等/简单的后端和前端技术,因为是第一次...
  • Javaweb学习总结(二)

    2017-09-16 18:52:33
    servlet的生命周期: Servlet运行在Servlet容器中,其生命周期由容器来管理。 每一个自定义的Servlet都必须实现Servlet的接口,Servlet接口中定义了五个方法,其中比较重要的三个方法涉及到Servlet的生命周期,...
  • 学习MVC架构开发 servlet + jdbc 1. servlet 1-1 导包:即:servlet-api.jar和jsp-api.jar包。 (有的eclipse是需要导这两个包的,这两个包在Tomcat的lib目录下可以找到) 1-2 版本:2.5版本/3.几系列的版本(3.几...
  • Java学习路线第二阶段JavaWeb Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的...
  • 学习Java的体系课程已经有几个月时间了,其中加入了Web元素,咋听起来让人觉得望而生畏,但是细来一想,无非几个标签而已,语法并没有多困难,核心还是在Java基础概念的掌握。 一开始学习前端...
  • javaweb学习方法总结

    2013-11-02 21:41:48
    javaweb学习差不多结束了,基本的知识结构有了一定的理解,但是练习的不多,还需要对实践,然后对各个知识点加深理解,才能运用好。 上课的时候,还是不能完全集中精力,前面一段时间事先做了些预习,上课的时候...
  • JavaWeb阶段学习总结

    2020-05-03 22:40:05
    以一个简单的学生信息系统为例1.功能简介2.使用的基本框架3.具体项目结构4.代码实现JavaBean数据库操作工具类Jsp页面ServletService层Dao层5....1.功能简介 实现学生信息的简单操作:分页查看以及增删改。...
  • Javaweb系统学习路线:Java系统学习路线:第一阶段技术名称第一阶段: Java 基础,包括 Java 语法,面向对象特征,常见API,集合框架。(基础)第二阶段:Java API:输入输出,多线程,网络编程,反射注解等,Java 的...
  • 一、javaweb的基本概念 javaweb开发的基本概念 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。在Internet上供外界访问的Web资源分为: – 静态网页(web)资源:页面的...
  • JavaWeb学习

    2018-12-25 20:02:58
    一.JSP:动态网页 动态网页 需要使用到 服务端脚本语言(JSP) 架构 CS:Client Server CS不足: a.如果 软件升级, 那么全部软件都需要升级 b....c....BS :Broswer Server 客户端可以通过 浏览器 直接访问服务端 ...300/3...
  • 一、打包JavaWeb应用  在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:   范例:将JavaWebDemoProject这个JavaWeb应用打包成war包    执行完之后,就可以得到一...
1 2 3 4 5 ... 20
收藏数 4,754
精华内容 1,901
关键字:

java web学习阶段