Java Web(一)- 学习笔记
一. 索引
1. Servlet核心技术(上)
<2> HTTP协议
概念: 规范浏览器与服务器之间,通信数据的格式
请求格式:请求行 + 请求头 + 空白行 + 请求体
响应格式:响应行 + 响应头 + 空白行 + 响应体
<3> Tomcat服务器
概念:轻量级的、开源的Web应用服务器
下载安装
目录结构: bin / conf / WebApps / work (存放编译后的文件) / ...
启动: bin / startup.bat
关闭: bin / shutdown.bat
配置文件: conf / server.xml 中,设置端口号
conf / tomcat-users.xml中,配置Tomcat服务器的用户与权限
<4> Servlet的概念和使用
概念:服务连接器,本质上是运行在服务器上的Java类
编写步骤:
1 . 建立一个Java Web Application项目,并配置Tomcat服务器
2. 自定义类,继承 HttpServlet类, 并重写service方法
3. 将自定义类的信息配置到 web.xml文件,并启动项目
Servlet的生命周期:
<5> GET请求 & POST请求
各自发出请求的主要方式
各自的特点
<6> ServletRequest接口 & HttpServletRequest接口
概念:用于向Servlet提供客户端的请求信息(针对请求信息的打包处理)
<7> ServletResponse接口 & HttpServletResponse接口
概念:用于响应数据的打包
<8> Servlet接收中文乱码
<9> ServletConfig接口 & ServletContext接口
ServletConfig:用于描述Servlet相关的配置信息
ServletContext:用于实现多个Servlet之间,信息的共享和通信
2. Servlet核心技术(下)
<1> Servlet+JDBC应用
<2> 重定向和转发
重定向: 请求(Request对象)被重新创建,并发送给服务器
转发: 请求(Request对象)在服务器内部之间被转发
线程安全: 多线程并发逻辑,需要使用synchronized对代码加锁处理,但尽量避免使用
状态管理:
概念 - 把浏览器与服务器之间多次交互,作为一个整体,将多次交互所涉及的数据保存下来
分类
客户端管理:将状态保存在客户端(基于Cookie技术实现)
服务器管理:将状态保存在服务器端(基于Session技术实现)
<4> Cookie技术
概念:客户端以“名-值”形式,进行保存数据的一种技术
过程:
1. 客户端向服务器发送请求 ---> 服务器将数据以Set-Cookie消息头的方式,响应给客户端
2. 客户端再次访问服务器 ---> 这些数据以Cookie消息头的方式,发送给服务器
生命周期:
1. 默认:只要浏览器关闭,Cookie信息就会消失
2. 自定义: void setMaxAge(int expiry)
<5> Session技术
概念: 用来维护一个客户端和服务器关联的一种技术
过程:
1. 浏览器访问服务器 ----> 服务器创建一个Session(内含一个SessionId)----> SessionId发送给浏览器存储
2. 浏览器再次访问服务器,将 SessionId 发送给服务器 ----> 服务器依据SessionId,查找对应的 Session对象
生命周期:
1. 默认:30分钟
2. 自定义: void setMaxInactiveInterval(int interval)
3. JSP核心技术
<1> JSP概述
1. JSP文件以HTML标记为主,然后内嵌Java代码段,用于处理动态内容
2. JSP与Servlet的关系
<2> JSP语法
1. 声明区 <%! %>: 定义全局变量、方法、类
2. 程序代码区<% %>: 定义局部变量 & 放入Java代码
3. 表达式<%= %>: 输出一个变量或一个具体内容
4. 注释:
HTML <!-- --> JSP <%-- --> JAVA <%// %> 和 <% /* */%>
5. 指令: <%@指令 属性=“属性值”%>
page指令:用于导包,和设置一些页面属性
taglib指令:用来扩展JSP程序的标签元素,引入其他功能的标签库文件
include指令: 用于引入另一个JSP程序或HTML文件等
6. 动作
jsp:include和jsp:param 动作: 用于引入另一个JSP程序或HTML文件
jsp:forward和jsp:param 动作: 转发,将请求转发到另一个指定的JSP程序(或者Servlet中处理)
<3> JSP内置对象
<4> JavaBean组件
JavaBean 是使用 Java 语言开发的、一个可重用的组件,
在 JSP 开发中,可以使用 JavaBean 减少重复代码,使整个 JSP 代码的开发更加简洁
<5> MVC设计模式
二. 练习
<1> 题意
使用前端、数据库、JavaWeb 等技术并采用 MVC 设计模式实现学生信息管理系统,要求:
1. 使用管理员账号密码登录后进行:
2. 学员信息增加
3. 学员信息修改
4. 学员信息删除
5. 学员信息查找
6. 学员信息显示功能
其中,学生信息有:
学号、姓名、性别、出生日期、邮箱、备注
另外:
a. 前端页面、数据库表、后台业务等自行设计和实现
b. 尽可能使用已学过的流行技术,如:数据库连接池、分页显示等
c. 提供可运行的编程代码和sql脚本
<2> 思路
1. 搭建架构: 创建MVC设计模式相关的包
2. 分析题意: 两大功能模块 - 管理员登录 & 学生的增删改查
3. 管理员登录
<1> index.jsp - 发送账号密码给 adminLoginServlet
<2> servlet/AdminLoginServlet.java - 获取JSP发送过来的账号密码,然后调用Service层,实现数据的校验
<3> service/UserServiceImpl.java - 在service层,通过工厂类,得到DAO对象
<4> factory/DaoFactory.java - 通过工厂类,得到DAO对象
<5> dao/UserDaoImpl.java - 访问数据库,并把结果,返回给service层
service层 (<3>中的2) 再返回给servlet (<2>中的红框)
<6> servlet/AdminLoginServlet.java - 得到返回值后, 以JSP的方式显示最终的结果
4. 学生管理模块 - 增删改查
<1> 如上图的2所示,当登录成功时,跳转到StudentPageQueryServlet.java
<2> entity/PageBean.java - 实现分页功能的封装
<3> service/StudentServiceImpl.java
<4> dao/studentDaoImpl
<5> manageStudent.jsp - 进行分页显示
<6> servlet/studentAddServlet.java - 实现增加和修改的功能 (通过前端页面manageStudent.jsp传来的flag变量来区分,进行增加还是修改)
<7> servlet/StudentDeleteServlet.java
<8> servlet/StudentQueryServlet.java