Java Web程序设计

文章详细内容在我的个人博客中https://blog.lukeewin.top

Java Web程序设计

HTML简介

它是一门描述网页的语言,HyperText MarkUp Language,超文本标记语言

超文本: 超出文本的范畴,指的在网页上面可以描述文本、图片、视频等内容

标记: 标签,在标签里面书写内容。

语言: html就是用户和浏览器交互的工具,简单来讲,浏览器会解析html的标记,以特定的效果给展示出来

html的构成

html的主要组成部分:

文档的声明<!DOCTYPE>: 声明了html的类型和版本号:

html的根标记 : 标识html的开始和结束

html的头部标记: 设置与页面信息

html的主体标记 : 在页面展示内容。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML4.01 Transitional/EN" "http://www.w3.org/TR/html4/loose.dtd"><!--文档类型声明-->
<html>
    <head>
    	<title></title>
    </head>
    <body>
        <!--网页的内容-->
    </body>
</html>

换行标志

<br/>

段落标志

<p>段落内容<p/>

字体标志

<font face="微软雅黑" size="7" color="red">我是红色微软雅黑7号大的字体</font>

注意:size的最大取值是7,color可以是16进制,也可以是RGB表示,还可以是英文

图像标志

<img src="图像的路径" width="宽" height="高" border="边框"/>

注意:路径可以是网络路径,可以是相对路径,可以是绝对路径

  • html的注释:<!--注释的内容-->

表格标志

tr: 表示行(常用的属性align描述表格内的内容显示位置)

td:表示单元格

th: 表示单元格,自动区中,加粗。

常用的属性:

  • border: 给表格添加边框
  • width:描述表格的宽度
  • align:描述表格的位置
  • cellspacing: 描述边框的厚度
  • cellpadding: 描述文字与边框的距离
<table border="边框大小" >
    <tr><!--定义一行-->
    <td></td><!--定义一列-->
    </tr>
</table>

ex:

<table border="2" width="100" align="center" cellspacing="2" cellpadding="5">
   <tr>
      <td>姓名</td>
      <td>语文</td>
      <td>数学</td>
      <td>英语</td>
   </tr>
   <tr>
      <td>王冰冰</td>
      <td>80</td>
      <td>79</td>
      <td>88</td>
   </tr>
   <tr>
      <td>赵丽颖</td>
      <td>85</td>
      <td>45</td>
      <td>67</td>
   </tr>
</table>

表单标签

<form action="URL" method="get/post" name="表单的名字">
    
</form>

注意:如果提交给本页面,使用action="#"

输入标签

<input/>

<input type="类型" name="">
<input type="radio" name="gender" value="male"/><!--单选按钮-->
<input type="radio" name="gender" value="female"/>
<input type="checkbox" name="a" value="玩游戏"/>
<input type="checkbox" name="a" value="听音乐"/>
<input type="file" name="photo"/><!--文件上传-->

列表

列表标记:有序列表标记、无序列表标记、自定义列表标记

无序列表:

    • 列表项内容1
    • 列表项内容2
    • 列表项内容3
    • 属性: type 默认值disc ,square,circle
    <ul>
        <li>你喜欢上的课程</li>
        <li type="disc">java</li>
        <li type="square">python</li>
    </ul>
    

    效果:

    image-20210301114835923

    超链接

    语法:<a href="跳转的url" target="目标窗口的弹出方式">文字或图片</a>

    <!--在新窗口打开--> <a href="url" target="_blank">
    <!--在自己的窗口打开--><a href="url" target="_self">
    

    div标签

    <div></div>

    CSS样式

    CSS样式的引入方式

    1.内嵌式

    注意:一定要放在head标签内,一般放在title后面

    <style type="text/css"></style>

    2.外链式

    <link href="CSS文件的路径" type="text/css" ref="tylesheet"/>

    3.行内式

    直接在html的元素中添加

    语法:

    css行内式

    4.导入式

    import 需要导入的css样式

    CSS选择器和常用属性

    1.标签选择器

    a{属性:属性值};

    2.通配符选择器

    *{属性1:属性值1;属性2:属性值2…};

    3.类选择器

    .类名{属性:属性值};

    类选择器可以定义相同,id选择器是唯一的

    4.id选择器

    #id名{属性:属性值}

    注意选择器是有优先级的:id选择器>class选择器>标签选择器>通配符选择器

    JavaScript

    什么是js?

    js是基于对象和事件驱动的语言,它应用于客户端

    • 基于对象:在js里提供了一些对象,可以直接使用

    • 面向对象:java里,要先创建对象,再使用

    • 事件驱动:js里,它触发事件,调用函数,实现网页里面的动态效果

    • 客户端:浏览器

    Java与JavaScript的区别:没有关系,就像雷锋和雷峰塔一样

    js的作用:它是给网页增加动态效果

    JavaScript的引入

    内嵌式引入js

    <script type="text/javascript">js代码</script>
    

    通过外链式引入

    <script type="text/javascript" src="js文件的路径"></script>
    

    html DOM

    DOM如何解析html文档?

    DON会根据html的层级结构,在内存中形成一个树形结构,树形结构里面有标记元素和属性和文本等元素,整个html文档对应一个

    document对象,通过document文档对象,可以操作html里面得到所有元素。

    image-20210307171554964
    • 节点的访问:

      节点对象.childNotes:获取该节点的所有子节点

      节点对象.parentNotes:获取该节点的父节点

    • 获取文档中的元素:

      根据标记的id属性值获取元素对象:document.getElementById(id属性所对应的值);

      根据标记的名称获取元素对象:document.getElementsByTagName(标记的名称);

      根据标记的name属性值获取元素对象:document.getElementsByName(name属性对应的值)

    1. 根据id获取元素

    document.getElementById("a");
    

    2.根据名字获取元素

    document.getElement==s==ByName(“b”);

    返回的是一个数组,如果需要获取具体的元素,可以用数组下标

    javascript中的数据类型

    数值型:number

    字符串:string

    对象:object

    空:null

    未知的类型:undefined

    布尔类型:boolean

    变量

    在js中都用var来定义变量(用typeof可以查看类型)

    运算符

    ==注意:==当有字符串和数值类型相加时,最终是生成string类型,加号相当于连接符

    当字符串和数值类型相减,相乘,相除时,会把字符串转为数值类型,然后进行运算

    函数

    使用function来声明

    function functionName(参数){}
    

    1.创建普通函数

    语法:

    function add(a,b){
        var sum = a+b;
        return sum;
    }
    

    2.创建匿名函数

    语法:

    var add = function (a,b){
        var sum = a+b;
        return sum;
    }
    

    3.创建动态函数

    语法:

    //1.定义函数的参数
    var param="a,b";
    //2.创建函数体
    var method =" var sum=a+b; return sum; "
    //3.动态函数
    var add3= new Function(param , method);
    

    事件处理

    1. 直接通过事件绑定函数

      <input type="button" name="btn" value="点我" onclick="add();" />
      function add(){alert("点我啊!");}
      

      ex:

      <!DOCTYPE html>
      <html>
          <head>
              <title>js</title>
          </head>
          <body>
              <input type="button" name="btn" value="点我" onclick="add();" />
          </body>
          <script type="text/javascript">
              function add(){
                  alert("click");
              }
          </script>
      </html>
      
    2. 通过给事件属性赋一个函数

      <input type="button" name="btn" value="点我"  id="inputID"/>
      document.getElementById("inputID").onclick=function(){
          alert("点了我吗?");
      }
      

    常用的事件:

    • 点击事件:onclick
    • 失去焦点事件:onblur
    • 获取焦点事件:onfocuse
    • 键盘事件:onkeyup onkeydown onkeypress
    • 页面加载事件:onload
      • 注意:页面加载事件是在整个html网页加载完毕后,才会执行这个事件对应的函数。
    • 鼠标事件:onmouseout onmouseover onmousemove

    常用对象

    image-20210307192845618

    XML

    Extensible MarkUp Language(可扩展标记语言)

    与html的区别:

    1. html是用来显示数据的
    2. html不区分大小写
    3. html可以有多个根元素
    4. html会过滤空格
    5. html中的标记是预定义好的,不能自己定义
    6. html中的属性可用可不用

    XML只有两个版本:1.0 和1.1

    XML的作用:它用来存储数据

    1. 作为系统与系统之间传输数据的格式

    2. 作为项目的配置文件

    3. 保存有结构关系型的数据

      ​ 衡水

      ​ 保定

    XML语法

    XML的文档声明

    语法:<?xml version="1.0" encoding="UTF-8"?>

    ​ 属性:version 用来表示xml的版本号

    encoding 用来表示xml的编码格式,默认UTF-8格式

    standalone 用来表示是否独立,默认no,即不依赖外部文件

    注意:

    1. "?"前后不能有空格,同时声明必须放在第一行,第一列。
    2. 必须要有version
    1. 文档的声明:<?xml version="1.0" encoding="UTF-8"?>

    注意:1.声明必须放在第一行第一列

    2."?"前后没有空格

    1. 声明编码(默认UTF-8格式)

    <?xml version="1.0" encoding="UTF-8"?>

    1. 声明是否是独立文档(默认no)

    <?xml version="1.0" encoding="UTF-8" standlone="yes"?>

    XML元素定义

    XML的元素

    <元素1>内容</元素>

    注意:如果内容为空,则可以写成<元素/>

    元素的命名规则:

    1. 区分大小写
    2. 不能以数字开头
    3. 建议不要使用".","-"
    4. 不能包含空格,<city >广州</city >是错误的

    XML属性的定义

    语法:

    注意:属性对应的值要用""给括起来

    XML的注释

    html的注释:<!--htlm的注释内容-->

    js的注释:参照java注释

    xml的注释:<!--xml的注释内容--->

    注意:

    1. 注释不能在标记中

    2.注释不能在<?xml version="1.0"?>之前

    ==3. <!–this is --abc–>==是错误的

    注意:

    1. xml是区分大小写的
    2. xml的标记不能以数字或或者下划线开头
    3. xml的标记不能以xml或者XML开头
    4. xml的标记里不能包括空格等特殊符号,比如:<a a></a a> <a:a></a:a>

    DTD约束

    1. 什么是约束:在xml文档中,可以通过一个文件来约束xml文档中的内容规范,这个规范就是约束。简单来说就是规定了xml文件中可以写什么,不可以写什么。
    2. 为什么要约束?因为xml文件可以随意写,如果标记随意写,那么在解析xml文件时,程序员就不清楚xml文件中的标记具体表示什么,所以要用约束规范xml文件来约束。

    创建约束文件

    ex:

    <!ELEMENT 书架 (书+)>
    <!ELEMENT 书 (书名,作者,价格)>
    <!ELEMENT 书名 (#PCDATA)>
    <!ELEMENT 作者 (#PCDATA)>
    <!ELEMENT 价格 (#PCDATA)>
    

    引入约束的方式:

    1. 直接在xml文件中引入DTD约束

    ​ <!ELEMENT 书 (书名,作者,价格+)>
    ​ <!ELEMENT 书名 (#PCDATA)>
    ​ <!ELEMENT 作者 (#PCDATA)>
    ​ <!ELEMENT 价格 (#PCDATA)>

    ]>

    1. 外部引入方式:

      2.1 本地引入:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE 书架 SYSTEM "book.dtd">
      

      2.2 公网引入:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE 书架 PUBLIC "DTD名称" "DTD文件在公网上的URL">
      

    DTD语法

    元素定义

    基本语法:<!ELEMENT 元素名称 (元素内容)>

    元素内容对应的类型:

    1. 普通文本:#PCDATA
    2. 子元素:比如说: (子元素1,子元素2,…)
    3. EMPTY: 比如说:
    4. ANY: 代表任意内容,元素内容可以是普通文本,也可以是子元素。

    注意:

    *表示0或多个

    +表示一个或多个

    |表示任选一个

    ,表示子元素按顺序排列

    ?表示可以出现0或1个

    image-20210308112435010

    混合模式:<!ELEMENT 书(#PCDATA|书名)*>注意要写*

    image-20210308113252378

    ####属性定义

    image-20210308223723029

    Schema约束

    什么是Schema约束?

    它同DTD约束基本一样,也是用来规范xml文件内容的书写规范,只不过Shema的约束比DTD更加强大。

    与DTD的区别:

    ​ DTD约束文件的后缀名dtd,机制采用自身的约束

    ​ Schema约束文件的后缀名是xsd,它是基于xml语法格式

    ###名称空间

    名称空间的作用就是用来在xml文档中引入schema文件的,但是在一个xml中可以引入多个schema文件,就可以使用名称空间来区分不同的约束文件。

    引入Schema文件的方式

    第一种方式:通过名称空间引入

    第二种方式:不通过名称空间引入

    Schema语法

    元素定义

    属性定义

    4. ANY: 代表任意内容,元素内容可以是普通文本,也可以是子元素。

    注意:

    *表示0或多个

    +表示一个或多个

    |表示任选一个

    ,表示子元素按顺序排列

    ?表示可以出现0或1个

    [外链图片转存中…(img-bimwBIHt-1615219879157)]

    混合模式:<!ELEMENT 书(#PCDATA|书名)*>注意要写*

    [外链图片转存中…(img-QAJ1oK4t-1615219879159)]

    ####属性定义

    [外链图片转存中…(img-mT5Nt8kQ-1615219879160)]

    Schema约束

    什么是Schema约束?

    它同DTD约束基本一样,也是用来规范xml文件内容的书写规范,只不过Shema的约束比DTD更加强大。

    与DTD的区别:

    ​ DTD约束文件的后缀名dtd,机制采用自身的约束

    ​ Schema约束文件的后缀名是xsd,它是基于xml语法格式

    ###名称空间

    名称空间的作用就是用来在xml文档中引入schema文件的,但是在一个xml中可以引入多个schema文件,就可以使用名称空间来区分不同的约束文件。

    引入Schema文件的方式

    第一种方式:通过名称空间引入

    第二种方式:不通过名称空间引入

    Schema语法

    元素定义

    属性定义

    • 3
      点赞
    • 13
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    <>人民邮电出版社的教程哦,所以,好书,你懂的!! 第1章web应用开发简介 1 1.1何为web应用 1 1.1.1web的概念及发展 1 1.1.2web应用程序 2 1.2使用java开发web应用 3 1.2.1面向对象的编程语言 3 1.2.2丰富的框架技术 4 1.2.3xml、css的应用 4 1.2.4使用javascript与ajax提升用户体验 7 1.3多种集成开发环境 9 1.3.1集成开发环境简介 9 1.3.2web应用服务器说明 11 本章小结 14 课后练习 14 第2章 javaee运行及开发环境 15 2.1jdk的下载与安装 15 2.1.1jdk的下载与安装 15 2.1.2配置环境变量 17 >2.2tomcat的下载与安装 19 2.2.1下载并安装tomcat服务器 19 .2.2.2基本配置 22 2.2.3服务器页面介绍 23 2.3eclipse的下载与安装 24 2.3.1eclipse的下载与安装 24 2.3.2熟悉eclipse开发环境 24 2.4项目实战——第一个javaee应用:helloworld 28 2.4.1开始创建第一个javaee应用 28 2.4.2熟悉helloworld框架结构 29 本章小结 32 课后练习 32 第3章jsp和servlet 33 3.1开发第一个jsp+servlet应用 33 3.1.1创建工程 33 3.1.2编写程序 34 3.1.3部署应用 35 3.2认识jsp 36 3.2.1jsp的工作原理 37 3.2.2jsp注释方式 37 3.2.3jsp声明方式 38 3.2.4jsp表达式的应用 39 3.2.5jsp的脚本段 39 3.2.6jsp的编译指令 40 3.2.7jsp的动作指令 41 3.2.8jsp的内置对象 43 3.3认识servlet 46 3.3.1servlet的开发 46 3.3.2使用httpservlet 47 3.3.3servlet的生命周期 49 3.3.4load-on-startupservlet 50 3.4自定义标签库 51 3.5预处理用户请求:filter 53 3.6使用listener 56 3.7项目实战——用户登录 59 本章小结 62 课后练习 63 第4章sql与jdbc 64 4.1sql 64 4.1.1sql概述 64 4.1.2ddl与dml简介 64 4.1.3sql使用方法 65 4.2jdbc 67 4.2.1jdbc概述 67 4.2.2jdbc驱动程序 68 4.2.3使用jdbc读取数据 69 4.3项目实战——存储图书信息 73 本章小结 78 课后练习 79 第5章struts2框架基础 80 5.1mvc框架 80 5.1.1model1与model2 80 5.1.2mvc设计模式 81 5.1.3struts2框架的mvc架构 82 5.2struts2概览 84 5.2.1struts2的工作流程 84 5.2.2struts2的简单应用 85 5.3struts2基础 87 5.3.1action详解 88 5.3.2结果与视图 91 5.3.3struts.xml的配置 94 5.4值栈与ognl表达式 100 5.5struts2的标签库 103 5.5.1控制标签 103 5.5.2数据标签 104 5.5.3表单标签 105 5.5.4非表单ui标签 107 本章小结 108 课后练习 109 第6章struts2高级应用 110 6.1拦截器 110 6.1.1拦截器工作机制 110 6.1.2拦截器及拦截器栈的应用 111 6.1.3自定义拦截器 115 6.2类型转换器 117 6.2.1struts2内置类型转换器 117 6.2.2引用类型的转换方式 117 6.2.3特殊对象的类型转换 118 6.2.4类型转换的错误处理 121 6.3输入校验 123 6.3.1输入校验的必要性 123 6.3.2编程方式实现输入校验 125 6.3.3应用struts2输入校验框架 128 6.3.4自定义校验器 130 6.4国际化 131 6.4.1国际化实现原理 131 6.4.2准备国际化资源文件 131 6.4.3调用国际化资源文件 134 6.5上传和下载 135 6.5.1文件上传的实现原理 135 6.5.2struts2文件上传实现方式 136 6.5.3struts2文件下载实现方式 141 本章小结 143 课后练习 144 第7章 struts2中应用模板语言 145 7.1模板语言简介 145 7.2应用velocity 146 7.2.1velocity基础 146 7.2.2struts2对velocity的支持 153 7.3应用freemarker 155 7.3.1freemarker基础 155 7.3.2struts2整合freemarker 166 7.3.3使用struts2标签设计模板 170 7.4freemarker与velocity的比较 171 本章小结 171 课后练习 172 第8章hibernate框架基础 173 8.1orm简介 173 8.1.1应用orm的意义 173 8.1.2流行的orm框架 174 8.2准备hibernate运行环境 174 8.2.1下载与安装hibernate 175 8.2.2hibernate发布包介绍 175 8.3认识hibernate 176 8.3.1hibernate框架结构 176 8.3.2hibernate配置文件 177 8.3.3configuration与sessionfactory 178 8.3.4session类 179 8.3.5hibernate中的关联关系 179 8.3.6hibernate映射文件 180 8.3.7hibernate工作原理 182 8.4项目实战——新闻内容显示 183 本章小结 186 课后练习 187 第9章hibernate查询 188 9.1hibernate的数据检索策略 188 9.1.1立即检索 188 9.1.2延迟检索 189 9.1.3预先检索 190 9.1.4批量检索 191 9.2hibernate的数据查询方式 193 9.2.1hql方式 193 9.2.2qbc方式 194 9.2.3原生sql方式 195 9.3hibernate的关联查询 196 9.3.1一对一关联关系的使用 196 9.3.2一对多、多对一关联关系的使用 197 9.3.3多对多关联关系的使用 199 9.4hibernate过滤 201 9.4.1session过滤 201 9.4.2filter过滤 201 9.5项目实战——客户订单管理 202 本章小结 207 课后练习 207 第10章hibernate性能优化 208 10.1hibernate事务与并发 208 10.1.1什么是事务 208 10.1.2hibernate中的事务处理 209 10.1.3在hibernate中使用jta事务 210 10.1.4并发控制 211 10.2hibernate缓存 213 10.2.1缓存的工作原理 213 10.2.2应用一级缓存 214 10.2.3应用二级缓存 214 10.2.4应用第三方缓存 216 10.3项目实战——借还图书 217 本章小结 224 课后练习 224 第11章spring框架基础 226 11.1spring框架概述 226 11.1.1认识spring框架 226 11.1.2spring框架特点 226 11.1.3spring框架核心架构 227 11.2建立spring开发环境 228 11.2.1下载spring框架 228 11.2.2spring发布包与软件包 229 11.2.3创建spring应用环境 230 11.3bean的装配 231 11.3.1bean基本配置 232 11.3.2为bean添加属性 232 11.3.3简化配置 233 11.4理解spring的核心——ioc 234 11.4.1控制反转 234 11.4.2依赖注入的3种方式 236 11.5beanfactory与applicationcontext 238 11.5.1认识beanfactory 238 11.5.2使用applicationcontext 238 11.6项目实战——spring问候程序 239 本章小结 241 课后练习 241 第12章springaop 242 12.1aop基础 242 12.1.1aop与oop的比较 242 12.1.2aop的核心概念 243 12.1.3java动态代理与aop 244 12.1.4springaop简介 245 12.2使用spring的通知 246 12.2.1beforeadvice 246 12.2.2afterreturningadvice 248 12.2.3methodinterceptor 249 12.2.4throwadvice 250 12.3使用spring的切入点 251 12.3.1静态切入点 251 12.3.2动态切入点 253 12.4springaop的代理工厂 253 12.4.1选择合适的代理 253 12.4.2proxyfactory 254 12.4.3proxyfactorybean 254 12.5项目实战——输出日志 256 本章小结 258 课后练习 259 第13章 spring与javaee持久化数据访问 260 13.1spring对dao模式的支持 260 13.1.1统一的数据访问异常 260 13.1.2通用的数据访问模板及抽象支持类 261 13.2spring的jdbc 262 13.2.1为什么需要jdbctemplate 262 13.2.2通过jdbcdaosupport使用jdbctemplate 263 13.2.3jdbctemplate提供的常用数据操作方法 264 13.3spring中的事务处理 265 13.3.1spring事务处理概述 266 13.3.2编程式事务处理 266 13.3.3声明式事务处理 267 13.3.4标注式事务处理 268 13.4项目实战——公司人事管理 269 本章小结 276 课后练习 276 第14章spring与struts2、hibernate框架的整合基础 277 14.1spring与struts2的整合方式 277 14.1.1struts2应用的扩展方式 277 14.1.2spring插件的应用 278 14.2spring和hibernate的整合 279 14.2.1spring对hibernate的支持 279 14.2.2管理sessionfactory 279 14.2.3hibernate的dao实现 281 14.2.4使用hibernatetemplate 281 14.2.5管理hibernate事务 282 14.3项目实战——学生成绩查询系统 283 本章小结 292 课后练习 293 第15章图书馆管理系统 294 15.1系统功能解析 294 15.2系统数据库设计 295 15.2.1数据库分析 295 15.2.2数据表关联关系分析 298 15.3系统框架搭建 300 15.3.1创建工程 300 15.3.2工程目录结构 300 15.4系统代码实现 302 15.4.1数据库连接的实现 303 15.4.2工具类的实现 304 15.4.3管理员登录与退出实现 306 15.4.4系统管理实现 313 15.4.5图书管理实现 319 15.4.6读者管理实现 329 15.4.7借还管理实现 333 15.4.8前台功能实现 336 本章小结 342

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

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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值