Java Web(一)- 学习笔记

一.  索引

      1.  Servlet核心技术(上)

            <1>  C/S、B/S、JavaWeb的概念

            <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对象)在服务器内部之间被转发

              

 

 

 

            <3>  Servlet线程安全 & 状态管理

                  线程安全:  多线程并发逻辑,需要使用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

 

posted @ 2021-09-19 12:06  Jasper2003  阅读(85)  评论(0编辑  收藏  举报