本文仅为新手想学习javaWeb的提供一些参考,有不足或错误之处可以修改或添加,另希望以后学习者可以同样将自己的心得发来和大家分享。。。谢谢

1 前台:html,css,javascript  这是最基本的三种技术html是网页上的基本标签格式,css则是指层叠样式表 (Cascading Style Sheets)用来修饰html的相当于一件衣服,javascript则是浏览器的脚本语言用来控制静态页面的动态效果。同时javascript还有一个轻量级的类库jquery,

而我们常说的Ajax则是七种技术的综合体用来实现网页的部分刷新,即实现我们常说的异步交换。

2 后台:我们需要服务器帮我们处理数据,由于服务器别人已经写好了,所以我们只需要遵守相应的规范就能让服务器帮我们工作了,而实现这座桥梁的规范就是Servlet,我们通过Servlet就能将数据发送或展现给用户了,但是由于Servlet写界面太麻烦了,于是sun推出了JSP,你可以在它上面直接写html和CSS,然后由服务器翻译为相应的Servlet再由服务器执行将数据发送给浏览器从而实现了动态网页的效果。。于是我们就引出了一些问题,就是有时我们需要保存客户的数据怎么办呢?这就产生了专门保存数据的数据库。但数据库也有很多啊!难道我们要学习每个数据库么?答案当然是否定的了,于是我们只要遵守相应的规范就行了,于是就有了大家常写的模板jdbc了。然后我们再说说JSP页面吧我们有时写JSP页面时也有可能需要一些的逻辑啊!我们怎么办呢?以前是直接在上面写java脚本就解决了即<%%>的形式但是后来人们发现这样程序写大了后维护起来相当不方便,于是产生了EL表达式替代它,但EL只是获取数据啊!涉及逻辑它又熄火了啊,这时就引出了自定义标签来解决它了。

至于框架技术暂且不谈本人也只是算了解。不谈了,以后再说吧

相关些许概念(此刻恰巧忙碌着论文,复制粘贴一下 ,方便以后复习查看吧)

JSP(全称JavaServer Pages)和Servlet技术一样,JSP也是SUN公司(现已被Oracle公司收购)倡导、很多公司参与共同建立的一种动态网页技术标准,也是sun定义的一种开发动态web资源的技术,属于JavaEE技术之一。JSP实际上就是Servlet,它们在一起又称JSP/Servlet规范。JSP:HTML+Java。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。它是在传统的网页HTML文件(*.htm,*.html)中加入Java程序段(Scriptlet)和JSP标签(Tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux中运行,也能在其他操作系统中运行。

JSP与Serverlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。WEB服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

JSP由HTML代码和嵌入其中的Java代码组成。服务器在页面被客户端请求后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的基础,大型Web应用程序的开发需要Java Servlet和JSP配合完成。JSP具备了Java技术简单实用、完全面向对象、具有平台无关性、安全可靠、主要面向Internet等特点。

Servlet技术简介:

在网上浏览网页是需要一个Web服务器,浏览网页的过程就是浏览器通过HTTP与Web服务器交互的过程。过去大多是静态网页,因此只须把资源放在web服务器即可。随着应用的开发,客户与服务器需要动态的交互,为了实现这一目标,就需要开发一个遵循HTTP的服务应用软件,用来处理各种请求。Servlet是一个基于Java技术的Web组件,运行在服务器端,用户利用Servlet可以很轻松地扩展Web服务器的功能,使其满足特定的应用需要。Servlet由Servlet容器(Servlet引擎),是Servlet的运行环境,为发送的请求和响应提供网络服务。例如,Tomcat就是一个常用的Servlet容器。接收客户端并作出响应的步骤如下:

1.客户端访问Web服务器,发送HTTP请求

2.Web服务器接收到请求后,传递给Servlet容器

3.Servlet容器加载Servlet,产生Servlet实例,并向其传递表示请求和响应的对象

4.Servlet得到客户端的请求信息,并进行相应的处理

5.Servlet实例把处理结果发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器

1.5.2 JavaScript技术

JavaScript是基于对象事件驱动的客户端脚本语言。有如下特点:

  • 交互性
  • 安全性(不可以直接访问本地硬盘)
  • 跨平台性(只要是可以解析js的浏览器都可以执行,和平台无关)

1、JavaScript和Java不同! ①所属:NetScape和Sun ②基于对象和面向对象 ③JS可以直接解析执行,Java需先编译在运行 ④JavaScript是一种弱类型的语言,Java是强类型的语言。

2、JavaScript的实现包括以下3个部分:

1)核心(ECMAScript):描述了JS的语法和基本对象

2)文档对象模型 ☆(DOM):处理网页内容的方法和接口

3)浏览器对象模型(BOM):与浏览器交互的方法和接口

 

JavaScript和Java无关,JavaScript 是属于网络的脚本语言!那么为什么名字如此相似?这是典型的市场营销方面的成功,它的推广成功,也是借了Java的东风。当微软开始意识到JavaScript在Web开发人员中流行起来时,微软还是一贯风格,建立了自己的脚本语言,JScript。

  JavaScript可以使网页更具交互性,给用户提供更令人兴奋的体验,当用户在页面间导航时向他们提供反馈。例如他可以设置鼠标悬停效果,在客户端验证表单,创建定制的HTML页面,显示警告框,设置cookie等等。

JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。

1.5.3 SQL介绍

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。 由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

MySQL关系型数据库于1998年1月发行第一个版本。是一个小型关系型数据库管理系统,开发者是瑞典MYSQLAB公司,该公司在08年被Sun收购,Sun又在09年被Oracle收购。它是一种关系数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库里,这样就提高了速度和灵活性。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。

1.5.3 jdbc介绍

JDBC(Java Data Base Connectivity,java数据库连接),由一些接口和类构成的API。是J2SE的一部分,由java.sql,javax.sql包组成。JDBC是一种用于执行SQL的JAVA API,它是一组访问数据库的API集合,通过加载数据库厂商所提供的驱动程序,可以与数据库建立连接。这样,用户就不用为访问不同的数据库而编写不同的程序了,只需要用JDBC API编写一个程序即可,而且JDBC技术对开发者屏蔽了一些细节,这样程序员就不需要它关心它的底层的实现技术。另外,与java一样,jdbc对数据库的访问也具有平台无关性。

JDBC访问数据库的步骤如下:

1):注册并加载驱动程序。驱动程序是数据厂商提供的一个对外接口,用来分辨所访问的是哪种数据库。Class.forName(“com.mysql.jdbc.Driver”);//加载驱动程序

2)创建连接。数据库连接是使用DriverManager对象的静态方法getConnection()建立的

String username="root";

String password="123456";

Connection conn = null;

conn = DriverManager.getConnection(url,username,password);//建立连接

3)创建SQL语句对象,用来执行sql语句,当建立连接以后,便可以由Statement对象将SQL语句发送给DBMS.对于select语句,可使用executeQuery(),对于创建或修改表的语句,使用executeUpdate()

Statement stmt = null;

ResultSet rs = null;

stmt = conn.createStatement();//创建执行sql语句,

stmt.execute("insert into Employee values(1,'hubin','22')");

rs  =stmt.executeQuery("select * from Employee");

4)显示结果。当执行查询语句时,SQL语句的执行结果存储在ResultSet对象中,可以使用GETXXXX方法来检索数据

while(rs.next()){

System.out.println(rs.getInt(1)+" "+ rs.getString(2)+" "  +rs.getInt(3));//处理执行结果

}

5)关闭连接。数据库连接需要消耗系统资源,一旦不需要使用时,就应该释放出来。这是程序员必须养成的良好习惯。在关闭连接时,正确的顺序是:Result、Statement、Connection;为了确保所有连接能够关闭,应该把关闭语句写在finally块中,这样不管操作数据库过程中是否发生异常,都能够把资源释放出来。连接其他数据库步骤均相同,只需要更改驱动程序即可。

if(rs!=null) rs.close();

if(stmt!=null) stmt.close();

if(conn !=null) conn.close();

1.5.3 数据源和连接池介绍

发1)DataSource用来取代DriverManager来获取Connection

2)通过Datasource获得Connection速度很快

3)通过Datasource获得的Connection都是已经被包裹过的(不是驱动原来的连接),它的close方法已经被修改

4)一般的DataSource内部会用一个连接池来缓存Connection,这样可以大幅度提高数据库的访问速度

5)连接池可以理解成一个能够存放Connection的Connection

6)我们的程序只和DataSource打交道,不会直接访问连接池

DBUtils框架简介:

commons-dbutils-1.4.jar是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的方法都是静态的类

QueryRunner:itcast-tools-1.4/cn/itcast/jdbc/TxQueryRunner该类简化了SQL查询,他与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。两个构造方法:@1.默认的构造方法@2.需要一个javax.sql.DataSource来做参数的构造方法

主要方法:

public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭。

public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException: 几乎与第一种方法一样;唯一的不同在于它不将数据库连接提供给方法,并且它是从提供给构造方法的数据源(DataSource) 或使用的setDataSource 方法中重新获得 Connection。

public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException : 执行一个不需要置换参数的查询操作。

public int update(Connection conn, String sql, Object[] params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。

public int update(Connection conn, String sql) throws SQLException:用来执行一个不需要置换参数的更新操作。

1.5.4 动态代理

pers.hoobey.estore.factory/OrderServiceFactory.java&ProductServiceFactory.java

在程序运行时,运用反射机制动态创建而成,主要有一个Proxy类和一个InvocationHandler接口,动态代理角色:@1.抽象了主体角色@2.真实主题角色(实现了抽象主题接口)@3.动态代理主题角色(实现了InvocationHandler接口,并实现invoke方法)

public Object invoke(Object proxy, Method method,

Object[] args){实现了代理对象调用方法时希望执行的动作}动判断是否有注解,得到注解上的注册对象,得到权限名称,得到用户,如果为空,则抛出权限不足异常,用来判断登录用户的身份从而实现不同的操作。

javaweb开发所需的技术需求的更多相关文章

  1. JavaWeb开发之四:servlet技术 黑马程序员_轻松掌握JavaWeb开发之四Servlet开发 方立勋老师视频教程相当的经典

    总结: 记住:servlet对象在应用程序运行的过程中只创建一次,浏览器每次访问的时候,创建reponse对象 request对象,然后调用servlet的service方法,reponse对象和re ...

  2. javaweb 开发所需工具和入门教程文档等

    下载网址 1.JDK1.8下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

  3. JavaWeb开发技术基础概念回顾篇

    JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...

  4. IT技术需求建立时需考虑的因素

      2012-11-13 内容存档在evernote,笔记名"IT技术需求建立时需考虑的因素"

  5. 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

    微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...

  6. [学习笔记]Javaweb开发视频教程之Tomcat9配置

    参考自北京动力节点的视频教程:https://www.bilibili.com/video/av14548279/?p=1 1.Java XE Java SE 是做电脑上运行的软件. Java EE ...

  7. JavaWeb开发之详解Servlet及Servlet容器

    自JavaEE诞生伊始,Servlet容器和Servlet技术,就构成了JavaEE应用的核心,配合其它组件,它们完善了Java企业级开发的全套解决方案.小到一个静态博客网站,大到分布式的集群应用,都 ...

  8. 关于JavaWeb开发的一些感悟

    从事JavaWeb的开发已经三年了,从最开始的啥都不会,到慢慢的能够独立做项目,从一开始的一片茫然,到现在的心中有数.对于技术.业务也有了自己的看法. JavaWeb开发所涉及到的知识点非常多,涉及到 ...

  9. javaWeb开发小工具---MailUtils及其单元测试

    本次介绍的是,在javaWeb开发中,我们不免会遇到发送邮件的需求,比如:用户注册账号,需要激活登录,以及服务器定期向会员发送礼品信息等.所以参考有关资料,写了这个MailUtils工具类. 1.Ma ...

随机推荐

  1. Codeforces Round #165 (Div. 1) Greenhouse Effect(DP)

    Greenhouse Effect time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  2. ES5 Object.create 方法

    Object.create(proto[, propertiesObject])The Object.create() method creates a new object with the spe ...

  3. sg函数总结

    http://blog.csdn.net/luomingjun12315/article/details/45555495 这一段时间写的题和我接下来要展示的一些概念都来自这里↑. 必胜点和必败点的概 ...

  4. [TCO2013]TrickyInequality

    $\newcommand{stirf}[2]{{{#1}\brack{#2}}}$$\newcommand{stirs}[2]{{{#1}\brace{#2}}}$题意:$\sum\limits_{i ...

  5. [CODECHEF]SEGPROD

    题意:给定$a_{1\cdots n}$和$p$,多次询问$\prod\limits_{i=l}^ra_i$对$p$取模的值,强制在线,每次询问要求$O(1)$回答 一个微小的黑科技... 静态区间查 ...

  6. 【树状数组逆序对】USACO.2011JAN-Above the median

    [题意] 给出一串数字,问中位数大于等于X的连续子串有几个.(这里如果有偶数个数,定义为偏大的那一个而非中间取平均) [思路] 下面的数据规模也小于原题,所以要改成__int64才行.没找到测试数据, ...

  7. python基础之反射内置方法元类

    补充内置函数 isinstance(obj,Foo)   # 判断obj是不是foo的实例 issubclass()      # 判断一个类是不是另一个类的子类 反射 什么是反射? 通过字符串来操作 ...

  8. HDU 5626 Clarke and points 平面两点曼哈顿最远距离

    Clarke and points 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5626 Description Clarke is a patie ...

  9. ubuntu BCM43142 lenovo网卡驱动安装(Broadcom)

    ubuntu13.10 lenovo网卡驱动安装(Broadcom)   ubuntu当月刚出了13.10版本,在升级了操作系统版本后无法搜索无线热点,联想官网提供的驱动下载都是为windows准备的 ...

  10. <摘录>perl正则表达式中的元字符、转义字符、量词及匹配方式

    Linux平台上被广泛使用的正则表达式库PCRE - Perl-compatible regular expressions,从其名字即可知道,PCRE提供的是一套与Perl中相兼容的正则表达式. 元 ...