# StudentSystemHomeWork **Repository Path**: jackytallow/student-system-home-work ## Basic Information - **Project Name**: StudentSystemHomeWork - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-11 - **Last Updated**: 2021-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## EL和JSTL核心技术 ### 1EL表达式 ${ varName } 1. 基本概念:EL(Expression Language)表达式提供了在JSP中简化表达式的方法,可以方便地访问各种数据并输出 2. 主要功能: - 依次访问pageContext、request、session和application作用域对象存储的数据。 - 获取请求参数值。 - 访问Bean对象的属性。 - 访问集合中的数据。 - 输出简单的运算结果 3. 访问请求参数的数据: - 在EL之前使用下列方式访问请求参数的数据 request.getParameter(name); request.getParameterValues(name); - 在EL中使用下列方式访问请求参数的数据 param:接收的参数只有一个值。 paramValues:接受的参数有多个值。 ``` ${param.name} ${paramValues.hobby[0]} ``` 4. 访问Bean对象的属性: - 访问方式: $ { 对象名 [“属性名”] } - 常用的内置对象 |类别| 标识符| 描述| |:---:|:---:|:---:| |JSP pageContext PageContext |处理当前页面| |作用域| pageScope| 同页面作用域属性名称和值有关的Map类| |- |requestScope| 同请求作用域属性的名称和值有关的Map类| |- |sessionScope| 同会话作用域属性的名称和值有关的Map类| |- |applicationScope| 同应用程序作用域属性的名称和值有关的Map类| |请求参数| param| 根据名称存储请求参数的值的Map类| |- |paramValues| 把请求参数的所有值作为一个String数组来存储的Map类| |请求头| header| 根据名称存储请求头主要值的Map类| |-| headerValues| 把请求头的所有值作为一个String数组来存储的Map类| |Cookie| cookie| 根据名称存储请求附带的cookie的Map类| |初始化参数| initParam| 根据名称存储Web应用程序上下文初始化参数的Map类| - 常见的运算符: 条件运算符 : ${条件表达式? 语句1 : 语句2} 验证运算符 : ``` ${empty 表达式} 返回布尔值判断表达式是否为"空"值,null值、无元素的集合或数组、长度为零的String被认为是空值。 ``` ### JSTL标签 1. 基本概念 : JSTL( JSP Standard Tag Library ) 被称为JSP标准标签库 2. 常用核心标签: - 输出标签 ``` 用来将指定内容输出的标签 ``` - 设置标签 ``` 用来设置属性范围值的标签 ``` - 删除表单 ``` 用来删除指定数据的标签 ``` - 单条件判断标签 ``` 满足条件执行 /c:if > ``` - 多条件判断标签 ``` 满足条件执行 不满足上述when条件时执行 ``` - 循环标签 ``` ``` - 常用函数标签 ``` <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ``` - 常用格式化标签 ``` <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> ``` ## Filter+Listener核心技术 ### Filter过滤器 1. 基本概念 - Filter本意为”过滤“的含义,是JavaWeb的三大组件之一,三大组件为:Servlet、Filter、Listener。 - 过滤器是向 Web 应用程序的请求和响应处理添加功能的 Web 服务组件。 - 过滤器相当于浏览器与Web资源之间的一道过滤网,在访问资源之前通过一系列的过滤器对请求 - 进行修改、判断以及拦截等,也可以对响应进行修改、判断以及拦截等。 2. 使用方式 - 自定义类实现Filter接口并重写doFilter方法。 - 在web.xml文件中配置过滤器 3. Filter接口: - javax.servlet.Filter接口主要用于描述过滤器对象,可以对资源的请求和资源的响应操作进行筛选操作。 - 常用的方法: |方法声明| 功能介绍| |---|---| |void init(FilterConfig filterConfig)|实现过滤器的初始化操作| |void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)| 执行过滤操作的功能| |void destroy()| 实现过滤器的销毁操作| 4. FilterConfig接口: - javax.servlet.FilterConfig接口主要用于描述过滤器的配置信息。 - 常用的方法: |方法声明| 功能介绍| |---|---| |String getFilterName() |获取过滤器的名字| |String getInitParameter(String name)| 获取指定的初始化参数信息| |Enumeration getInitParameterNames()| 获取所有的初始化操作名称| |ServletContext getServletContext()| 获取ServletContext对象| 5. 过滤器优点: - 实现代码的“可插拔性”,即增加或减少某个功能模块,不会影响程序的正常执行。 - 可以将多个相同处理逻辑的模块集中写在过滤器里面,可实现重复利用、也方便代码的维护 ### Listener监听器 ** 基本概念**: - Servlet规范中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理。 - 容器产生的事件分类如下: - 生命周期相关的事件。 - 属性状态相关的事件。 - 存值状态相关的事件。 - 底层原理是采用接口回调的方式实现。 1. 基本分类: |监听器类型| 功能介绍| |---|---| |javax.servlet.ServletRequestListener| 监听request作用域的创建和销毁| |javax.servlet.ServletRequestAttributeListener| 监听request作用域的属性状态变化| |javax.servlet.http.HttpSessionListener| 监听session作用域的创建和销毁| |javax.servlet.http.HttpSessionAttributeListener| 监听session作用域的属性状态变化| |javax.servlet.ServletContextListener| 监听application作用域的创建和销毁| |javax.servlet.ServletContextAttributeListener| 监听application作用域的属性状态变化| |javax.servlet.http.HttpSessionBindingListener| 监听对象与session的绑定和解除| |javax.servlet.http.HttpSessionActivationListener| 监听session数值的钝化和活化| 2. 监听器详解: - ServletRequestListener监听器 在ServletRequest创建和关闭时都会通知ServletRequestListener监听器。 |方法声明| 功能介绍| |---|---| |void requestInitialized(ServletRequestEvent sre)| 实现ServletRequest对象的初始化| |void requestDestroyed(ServletRequestEvent sre)| 实现ServletRequest对象的销毁| - ServletRequestAttributeListener监听器 向ServletRequest添加、删除或者替换一个属性的时候,将会通知 ServletRequestAttributeListener监听器。 |方法声明| 功能介绍| |---|---| |void attributeAdded(ServletRequestAttributeEvent srae)| 增加属性时触发| |void attributeReplaced(ServletRequestAttributeEvent srae)| 修改属性时触发| |void attributeRemoved(ServletRequestAttributeEvent srae)| 删除属性时触发| - HttpSessionListener监听器 当一个HttpSession刚被创建或者失效(invalidate)的时候,将会通知HttpSessionListener监听器。 |方法声明| 功能介绍| |---|---| |void sessionCreated(HttpSessionEvent se)| 当一个HttpSession对象被创建时会调用这个方法| |void sessionDestroyed(HttpSessionEvent se)| 当一个HttpSession超时或者调用HttpSession的invalidate()方法让它销毁时,将会调用这个方法| - HttpSessionAttributeListener监听器 HttpSession中添加、删除或者替换一个属性的时候,将会通知HttpSessionAttributeListener监听器。 |方法声明| 功能介绍| |---|---| |void attributeAdded(HttpSessionBindingEvent se) |当往会话中加入一个属性的时候会调用这个方法| |void attributeRemoved(HttpSessionBindingEvent se) |当从会话中删除一个属性的时候会调用这个方法| |void attributeReplaced(HttpSessionBindingEvent se) |当改变会话中的属性的时候会调用这个方法| - ServletContextListener监听器 在ServletContext创建和关闭时都会通知ServletContextListener监听器。 |方法声明| 功能介绍| |---|---| |void contextInitialized(ServletContextEvent sce)| 当ServletContext创建的时候,将会调用这个方法| |void contextDestroyed(ServletContextEvent sce) |当ServletContext销毁的时候(例如关闭应用服务器或者重新加载应用),将会调用这个方法| - ServletContextAttributeListener监听器 向ServletContext添加、删除或者替换一个属性的时候,将会通知ServletContextAttributesListener监听器 |方法声明| 功能介绍| |---|---| |void attributeAdded(ServletContextAttributeEvent scae)| 往ServletContext中加入一个属性的时候触发| |void attributeRemoved(ServletContextAttributeEvent scae)| 从ServletContext中删除一个属性的时候触发| |void attributeReplaced(ServletContextAttributeEvent scae)| 改变ServletContext中属性的时候触发| - HttpSessionBindingListener监听器 HttpSession中绑定和解除绑定时,将会通知HttpSessionListener监听器。 |方法声明 |功能介绍| |---|---| |void valueBound(HttpSessionBindingEvent event)| 有对象绑定时调用该方法| |void valueUnbound(HttpSessionBindingEvent event)| 有对象解除绑定时调用该方法| - HttpSessionActivationListener监听器 当有session数值的钝化和活化操作时,将会通知HttpSessionActivationListener监听器。 |方法声明 |功能介绍| |---|---| |void sessionWillPassivate(HttpSessionEvent se)| 有钝化操作时调用该方法| |void sessionDidActivate(HttpSessionEvent se)| 有活化操作时调用该方法| 配置context.xml文件 ## Linux系统常用命令 ** Shell的概念**: - Shell俗称外壳,是提供用户使用界面的一种软件,叫做命令解释器。 - 主要负责接受用户输入的命令,然后调用相应的应用程序,最后向用户输出程序运行的结果。 - 命令 [-选项] [参数] 1. 常用命令: - 查看目录下文件/目录 |命令| 功能描述| |---|---| |ls |list显示文件| |ls -l 或 ll list -list|显示详细信息| |ls -a list -all|显示全部(包含隐藏文件)文件| |ls -al list -all list| 上两个合体| |ls |目录名 查看目录下有什么东西| - 目录切换 |命令 |功能描述| |---|---| |cd …| 上一级目录| |cd dirname |进入目录| |cd 或 cd ~| 直接回到用户的家目录| |cd / |回到系统根目录| - 查看完整路径 |命令 |功能描述| |---|---| |pwd| 查看当前目录所在的位置| - 查看当前用户 |命令| 功能描述| |---|---| |whoami |查看当前用户的名称| - 用户切换 |命令| 功能描述| |---|---| |su| 普通用户切换到root用户| |su root| 切换到root用户| |su 用户名 |切换到普通用户| |exit| 退回到原来用户| - 管理用户 |命令| 功能描述| |---|---| |useradd xxx| 创建用户| |passwd xxx| 为创建的用户设置密码| |userdel| 删除用户| - 查看命令的所在目录 |命令| 功能描述| |---|---| |which| 命令 查看指定命令所在的路径信息| - 文件操作 |命令 |功能描述| |---|---| |touch fileName| 创建名字为fileName的文件| |touch dir/fileName |在dir目录下创建名字为fileName的文件| |echo 内容 > fileName| 把内容覆盖写到文件中,若文件不存在则创建| |echo 内容 >> fileName |把内容追加到文件中| |cat fileName| 打印文件内容到终端| |more fileName| 分屏查看文件各行内容,不支持回看| |less fileName| 查看文件各部分内容,支持回看| |head -n fileName| 查看文件的前n行内容| |tail -n fileName| 查看文件末尾n行内容| |wc fileName |查看文件的行数| - 目录操作 |命令| 功能描述| |---|---| |mkdir 目录名| 创建普通文件夹| |mkdir -p 目录/目录/目录| 递归方式创建多级父子文件夹| |mv dir1 dir2| 将dir1移动到dir2中| |mv dir1/dir2 ./| 将dir1中dir2移动到当前目录下| |mv dir1 name| 将dir1改名为name| |cp dir1 name |将dir1拷贝为name| |cp -r dir1 dir2| 需要设置参数 -r (recursive递归) 无视目录层次| |rm 文件| 删除文件| |rm -r |目录 递归删除目录(无视目录层次)| |rm -rf 文件/目录 -r force(强制)| 删除文件/目录| - 查找操作 |命令 |功能描述| |---|---| |find / -name passwd[完整名称] |查找passwd文件| |find ./ -name “p*” | 查找带”p”的文件| |find ./ -type f |查找所有文件| |grep 内容 fileName| 从指定文件中查找指定的内容| - 权限管理 |命令| 功能描述| |---|---| |chmod 权限 文件/目录名| 管理指定文件的权限信息,r读:4 w写:2 x执行:1| - 进程管理 |命令| 功能描述| |---|---| |ps| 查看当前终端窗口里的进程| |ps -aux| 查看系统中的所有进程| |ps -ef| 查看进程列表| |kill 进程号| 杀死指定的进程| |kill -9 进程号| 强制杀死指定的进程| - 其它命令 |命令| 功能描述| |---|---| |ifconfig |查看当前系统的IP地址等信息| |tar zcvf 压缩文件名.tar.gz 路径1 路径2 … |实现一组文件或文件夹的打包| |tar zxvf 压缩文件名.tar.gz| 实现解压缩解包| |man [章节号] 命令/函数名 |查询指定的命令或函数| ### vi工具的使用 vi和vim是Linux系统命令行下的文本编辑器,通常格式为:vi 文件名 或 vim 文件名 - 命令模式的编辑命令 |命令 |功能描述| |---|---| |i| 在当前位置之前插入| |a| 在当前位置之后插入| |o| 在当前行下插入| - 命令行模式的删除命令 |命令| 功能描述| |---|---| |r |替换一个字符| |cw |替换一个单词| |cc |替换一行| |C |替换从光标至行尾| - 命令行模式的拷贝命令 |命令| 功能描述| |---|---| |yw |拷贝词| |yy |拷贝行(或Y)| |dd |剪切行| |p |当前行下粘贴| |u |撤销| |ctrl+r| 取消撤销| - 底行模式的命令 |命令| 功能描述| |---|---| |:w |存盘| |:w newfile| 存成新文件| |:wq |存盘退出Vi(或ZZ,或:x)| |:q! |强行退出不存盘| |:1,2co3| 拷贝行1,行2在行3之后| |:4,5mo6| 移动行4,行5在行6之后| |:%s| /源字符串/目标字符串| |:%s |/源字符串/目标字符串/g 替换每一行中的所有| - 使用vimtutor 命令用来练习vi命令