Java Web程序设计

这篇博客介绍了Java Web程序设计的基础,包括Java Web开发环境配置、HTML和JavaScript的基本概念及语法。HTML部分讲解了快速入门和基础标签;JavaScript部分涉及引入方式、基础语法和对象;JSP编程则概述了基本语法、注释、Scriptlet和URL传值。文章适合初学者入门。

Java Web程序设计

  • 网页:展示数据

    前端:HTML+CSS JavaScript

  • 数据库:存储和管理数据

    后台

  • JavaWeb程序:逻辑处理

    后台:Tomcat +HTTP +Servlet JSP

W3C标准:

  • 结构:HTML
  • 表现:CSS
  • 行为:JavaScript

参考手册:https://www.w3school.com.cn/

第1部分 入门

一.Java Web开发环境配置

二.HTML基础

2.1.快速入门

HyperText Markup Language 超文本标记语言

  • 超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内存
  • 标记语言:由标签构成的
  • 不区分大小写
  • 扩展名 .html或.htm
  • 分为单标签和双标签

HTML运行在浏览器上,HTML标签由浏览器来解析

1.新建文本文件,后缀名改成.html

2.编写HTML结构标签

3.在中定义文字,中定义标题

<html>
    <head>
        <title></title>
    </head>
    <body>
    </body>
</html>
标签描述
定义HTML文档
定义关于文档的信息
定义文档的标题
定义文档的主体

2.2.基础标签

<h1> - <h6>

​ 定义标题 h1最小 h6最大 超过6按照网页默认字号显示

<front>

​ 定义文本

  • size 字体大小(1~6)

    size=X (+X / -X) 1~7

  • face字体类型

    默认宋体, 楷体_GB2312

  • color字体颜色

<b> 加粗

<i>斜体

<u>下划线

<center>文本居中

<p>段落

<br> 折线

<hr> 水平线

三.Java Script基础

3.1 引入方式

1.内部脚本

将JS代码定义在HTML页面中

在HTML中,JavaScript代码必须位于<script></script>标签之间

<script>
    alert("hello JS ~")
</script>
2.外部脚本

将JS代码定义在外部JS文件中,然后引入到HTML页面中

  • 外部文件:demo.js alert("hello JS ~")
  • 引入外部js文件 <script src = "../js/demo.js"></script>

注:

1.外部脚本不能包含

3.2 基础语法

1.书写语法
  • 区分大小写
  • 每行结尾的分号可有可无
  • 注释:
    • 单行注释://注释内容<! 注释内容 >
    • 多行注释:/*注释内容*/
  • 大括号表示代码块
2.输出语句
  • 使用 window.alert() 写入警告框
  • 使用 document.write() 写入HTML输出
  • 使用 console.log() 写入浏览器控制台(f12查看)
3.变量
  • JavaScript使用var关键字(variable)来声明变量

    var test = 20;
    test = "张三"
    

    var

    • 作用域:全局变量
    • 变量可以重复定义
  • JavaScript是一门弱类型语言,变量可以存放不同类型的值

  • 变量名需要遵守的规则:

    • 组成字符可以是任何字母、数字、下划线(_)或者美元符号($)
    • 数字不能开头
    • 建议使用驼峰命名(函数名中的每一个逻辑断点都有一个大写字母来标记)
4.数据类型

原始类型 和 引用类型

  • number:数字(整数、小数、NaN)
  • string:字符、字符串、单双引皆可
  • boolean:布尔 true false
  • null:对象为空
  • undefined:当声明的变量未初始化时,该变量的默认值是undefined

使用typeof可以获取数据类型

alert(typeof age);
5.运算符
  • 一元运算符: ++,--

  • 算术运算符: +, -,*,/,%

  • 赋值运算符: =, +=, -=..

  • 关系运算符: >, <, >=,<=, !=, ==,===...

    ==先判断两边的类型,若不一样会进行类型转换再比较

    ===(全等于)不会进行类型转换

  • 逻辑运算符: &&, ||, !

  • 三元运算符:条件表达式? true. _value : false_ _value

6.流程控制语句
  • if
  • switch
  • for
  • while
  • do…while
7.函数

函数是被设计为执行特定任务的代码块

  • 定义:JavaScript函数通过 function 关键词进行定义

    function functionName(参数1,参数2...){
        要执行的代码
    }
    
    var functionName = function(参数列表){
        要执行的代码
    }
    

    注意:

    • 形式参数不需要类型,因为JavaScript是弱类型语言

    • 返回值也不需要定义类型,可以在函数内部直接使用return返回即可

      function add(a,b){
          return a + b;
      }
      
  • 调用:函数名称(实际参数列表)

    let result = add(1,2);
    

    JS中,函数调用可以传递任意个参数,多的不接收

3.3 JavaScript对象

1.Window对象
  • 浏览器窗口对象
  • 获取:直接使用window, 其中window. 可以省略
window.alert("abc")
  • 属性:获取其他BOM对象
  • 方法:
    • alert(" ") 显示警告框
    • confirm(" ") 显示一个带有一段消息以及确认和取消按钮的对话框
    • prompt(" ") 显示输入框
    • setInterval(function ,毫秒值) 按照指定的周期(以毫秒计)来调用函数或计算表达式,循环执行
    • setTimeout(function ,毫秒值) 在指定的毫秒数后调用函数或计算表达式,只执行一次1
    • clearTimeout(timer) 清除计时器
2.document对象
  • 负责操作浏览器载入的文档(HTML文件)从属于window

  • 方法:

    • writelen() 在网页上输出
    • title 访问标题
    • location 获取网址
    • 访问表单元素
      • document.元素名.子元素名 …
      • 比如名为formal的表单中有一个文本框account,其中的内容可以由如下代码获得
    var account = document.formal.account.value;
    
3.history对象
  • 历史记录
  • 获取:使用window.history获取,其中window.可以省略
window.history.方法();
history.方法();
  • 方法:
    • back() 加载history列表中的前一个URL(相当于单击浏览器上的后退按钮)
    • forward() 加载history列表中的前一个URL(相当于单击浏览器上的前进按钮)
    • go(n) n为整数,正整数表示向前进n格页面,负数表示向后退n格页面
4.location对象
  • 访问地址栏
  • 获取:使用window.location获取,其中window.可以省略
window.location.方法();
location.方法();
  • 属性

    • href 设置或返回完整的URL

      window.location.href = "www.baidu.com"
      

//3s后跳转到首页

document.write("3秒后跳转到首页");
setTimeout(function()){
    location.href = "www.baidu.com"
},3000);

第2部分 JSP编程

四 . JSP基本语法

3.1 概述

  • 概念:Java Server Pages , Java服务端页面
  • 动态网页编程技术
  • JSP = HTML(静态) +Java
  • 允许在页面嵌套java代码,为用户提供动态数据
image-20220323162509957

3.2 注释

1.显示注释
  • 允许客户端看见
  • 从HTML风格继承而来
<!-- 注释内容 -->
2.隐示注释
  • 客户端无法看见
  • 从JAVA风格继承,JSP自己的注释
  • 1.JSP自己的注释
< %--JSP自己的注释--% >
  • 2.Java代码的注释
//单行注释
/*多行注释*/

< %  
   //单行注释
  /*多行注释*/
    % >

3.3 Scriptlet

Scriptlet脚本小程序 三种

1. JSP表达式
< % =变量/返回值/表达式  % >
  • 表达式,数据一个变量或者具体内容
  • 作用:将其里面的内容所运算的结果输出到客户端
  • 在JSP表达式中不能用“ ; ”结束
  • 在JSP表达式中不能出现多条语句
  • JSP表达式中的内容一定是字符串类型,或者能通过toString()函数转换成字符串的形式
2. JSP程序段
< % Java代码 % >
  • java脚本段,可以定义局部变量,编写语句
  • 插入到JSP程序的java代码段
  • 不能在JSP程序段中定义函数
  • 在JSP程序段中可以放入HTML,也能放入JSP程序段和JSP表达式
3. JSP声明
< %! 代码  % >
  • 声明,可以定义全局(成员)变量,方法,类
  • JSP程序段中的变量必须先定义后使用
  • JSP声明可以在JSP任何地方定义变量
  • JSP声明中只能作定义,不能实现控制逻辑

3.4 URL传值

  • http无状态协议,不能传值
  • URL网址
?参数名1 = 参数值1 & 参数名2 = 参数值2 & ...
http://localhost:8080/Prj04/page.jsp?m =3 %n = 5
//访问网址,并给其传参数m,值为3,传送参数n,值为5
在http://localhost:8080/Prj04/page.jsp获取方法
< %
	String str = request.getParameter("m");
% >
//传输不成功,str为null
  • 传输的数据只能是字符串,对数据类型有一定的限制
  • 传输数据的值会在浏览器的地址栏中看到

3.5 JSP指令和动作

1. JSP指令

告诉JSP引擎对JSP页面如何编译,不包含控制逻辑

< %@ 指令类别 属性1 = "属性值1"...属性n = "属性值n"% >
 //大小写敏感  
  • page

    设定页面的属性和相关的功能,用户可以利用其进行导入需要的类,指明JSP输出内容的类型、指定处理异常的错误页面等操作

  • include

  • taglib

1.page
(1)导入包

import属性:

编写程序时需要用到JDK的其他类,或者自行定义的类,利用import属性进行导入

< %@ page import = "包名.类名" % >
    
< %@ page import = "包名.*" % >//把包下面的全部类进行导入
    
< %@ page import = "包名.类1" % >
< %@ page import = "包名.类2" % >
或者
< %@ page import = "包名.类1,包名.类2" % >
(2)设定字符集
  • pageEncoding属性:设置页面的字符集
  • 常见的编码方式:
    • ISO-8859-1
    • gb2313
    • GBK
< %@ page Encoding = "编码类型" % >
(3)设定错误页面
  • errorPage属性

    指定一个页面,当JSP程序程序未被捕获的异常时跳转到这个指定的页面

  • isErrorPage属性

    跳转的页面指明处理其他页面的错误信息

< %@ page errorPage = "anErrorPage.jsp" % >
    
< %@ page isErrorPage = "true" % >
(4)设定MIME类型和字符编码

contentType属性设置JSP的MIME类型和可选字符

< %@ page contentType = "MIME 类型;charset=字符编码" % >
    
< %@ page contentType = "text/html;charset=gb2312" % >
2.include

保证代码重用

可以在JSP程序中插入多个外部文件,可以是JSP、HTML或Java程序,甚至是文本

< %@ include file = "logo.jsp" % >
    //该页面包含logo.jsp
2. JSP动作

使用XML语法格式的标记来控制服务器的行为

<jsp:动作名 属性1 = "属性值1"...属性n="属性值n"/>

<jsp:动作名 属性1 = "属性值1"...属性n="属性值n"/>相关内容</jsp:动作名>
动作说明
jsp:include页面被请求时引入一个文件
jsp:userBean实例化JavaBean
jsp:setProperty设置 JavaBean 的属性
jsp:getProperty获取 JavaBean 的属性
jsp:forward将请求转发到另一个页面
jsp:plugin根据浏览器类型替换成 或者 标签
jsp:element定义动态 XML 元素
jsp:attribute设置动态 XML 元素的属性
jsp:body设置动态 XML 元素的内容
<jsp:include page = "文件名"/>
或
<jsp:include page = "文件名"/>
	相关标签
</jsp:include>

<>人民邮电出版社的教程哦,所以,好书,你懂的!! 第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、付费专栏及课程。

余额充值