EL表达式
- EL(Expression Language)表达式提供了在JSP中简化表达式的方法,可以方便地访问各种数据并输出。
主要功能
- 依次访问pageContext、request、session和application作用域对象存储的数据。
- 获取请求参数值。
- 访问Bean对象的属性。
- 访问集合中的数据。
- 输出简单的运算结果。
执行流程
访问请求参数的数据
- 在EL之前使用下列方式访问请求参数的数据
- request.getParameter(name);
- request.getParameterValues(name);
- 在EL中使用下列方式访问请求参数的数据
- param:接收的参数只有一个值。
- paramValues:接受的参数有多个值。
访问Bean对象的属性
- 方式一: $ { 对象名 . 属性名 },例如:${user.name}
- 方式二: $ { 对象名 [“属性名”] },例如:${user["name"]}
常用的内置对象
常用的运算符
JSTL标签
- JSTL( JSP Standard Tag Library ) 被称为JSP标准标签库。
- 开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。
使用方式
- 下载JSTL的jar包并添加到项目中,下载地址为:https://tomcat.apache.org/download-taglibs.cgi
- 在JSP页面中使用taglib指定引入jstl标签库,方式为:
<!-- prefix属性用于指定库前缀 --> <!-- uri属性用于指定库的标识 --> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
常用核心标签
<c:out></c:out> 用来将指定内容输出的标签
<c:set></c:set> 用来设置属性范围值的标签
<c:remove></c:remove> 用来删除指定数据的标签
<c:if test =“EL条件表达式”> 满足条件执行 </c:if >
<c:choose > <c:when test =“EL表达式”> 满足条件执行 </c:when> … <c:otherwise> 不满足上述when条件时执行 </c:otherwise> </c:choose >
<c:forEach var=“循环变量” items=“集合”> … </c:forEach>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
自定义标签
- 如果上面几个标签不能满足需求,程序员也可以自定义标签,步骤如下:
- 编写标签类继承SimpleTagSupport类或TagSupport类并重写doTag方法或doStartTag方法。
- 定义标签库文件(tld标签库文件)并配置标签说明文件到到WEB-INF下
- 在JSP中添加taglib指令引入标签库使用
编码如下:
public class HelloTag extends SimpleTagSupport { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public void doTag() throws JspException, IOException { JspWriter out = this.getJspContext().getOut(); out.println("自定义标签的参数为:" + name); } } <tag> <name>helloTag</name> <tag-class>com.lagou.demo02.HelloTag</tag-class> <body-content>empty</body-content> <attribute> <name>name</name> <required>true</required> </attribute> </tag> <%@ taglib prefix="hello" uri="http://lagou.com" %>
Filter过滤器
- Filter本意为”过滤“的含义,是JavaWeb的三大组件之一,三大组件为:Servlet、Filter、Listener。
- 过滤器是向 Web 应用程序的请求和响应处理添加功能的 Web 服务组件。
- 过滤器相当于浏览器与Web资源之间的一道过滤网,在访问资源之前通过一系列的过滤器对请求
- 进行修改、判断以及拦截等,也可以对响应进行修改、判断以及拦截等。
使用方式
自定义类实现Filter接口并重写doFilter方法。
public class LoginFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException { //TODO 处理逻辑,必须调用下面的方法 chain.doFilter(request,response); } }
在web.xml文件中配置过滤器。
<filter> <filter-name>LoginFilter</filter-name> <filter-class>com.lagou.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Filter接口
- javax.servlet.Filter接口主要用于描述过滤器对象,可以对资源的请求和资源的响应操作进行筛选操作。
常用的方法
FilterConfig接口
- javax.servlet.FilterConfig接口主要用于描述过滤器的配置信息。
常用方法
多个过滤器的使用
如果有多个过滤器都满足过滤的条件,则容器依据映射的先后顺序来调用各个过滤器。
过滤器优点
- 实现代码的“可插拔性”,即增加或减少某个功能模块,不会影响程序的正常执行。
- 可以将多个相同处理逻辑的模块集中写在过滤器里面,可实现重复利用、也方便代码的维护。
Listener监听器
- Servlet规范中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理。
- 容器产生的事件分类如下:
- 生命周期相关的事件。
- 属性状态相关的事件。
- 存值状态相关的事件。
- 底层原理是采用接口回调的方式实现。
基本分类
(1)ServletRequestListener监听器
(2)ServletRequestAttributeListener监听器
(3)HttpSessionListener监听器
(4)HttpSessionAttributeListener监听器
(5)ServletContextListener监听器
(6)ServletContextAttributeListener监听器
(7)HttpSessionBindingListener监听器
(8)HttpSessionActivationListener监听器
配置context.xml文件的方式如下:
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="true"> <!-- 配置文件存放的路径信息,可以自由指定 --> <Store className="org.apache.catalina.session.FileStore" directory="C:session"/> </Manager>
Linux系统
Linux系统诞生于1991年,在林纳斯·托瓦兹(Linus Torvalds)上大学期间因不满意教学中使用的
MINIX操作系统并出于个人爱好设计和研发的。
Linux系统是一套免费、自由、开发源代码的类Unix操作系统,是一个基于Posix(PortableOperating System Interface)标准和多用户、多任务、支持多线程的操作系统。
Linux能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件。
centos目录结构
常用命令
- Shell俗称外壳,是提供用户使用界面的一种软件,叫做命令解释器。
- 主要负责接受用户输入的命令,然后调用相应的应用程序,最后向用户输出程序运行的结果
vi工具
(1)命令模式的编辑命令
i:在当前位置之前插入
a:在当前位置之后插入
o:在当前行下插入
(2)命令行模式的删除命令
x 删除一个字符
dw 删除当前词
3dw 删除三个词
dd 删除当前行
5dd 删除五行
(3)命令行模式的修改命令
r 替换一个字符
cw 替换一个单词
cc 替换一行
C 替换从光标至行尾
(4)命令行模式的拷贝命令
yw 拷贝词
yy 拷贝行(或Y)
dd 剪切行
p 当前行下粘贴
u 撤销
ctrl+r 取消撤销
(5)底行模式的命令
:w 存盘
:w newfile 存成新文件
:wq 存盘退出Vi(或ZZ,或:x)
:q! 强行退出不存盘
:1,2co3 拷贝行1,行2在行3之后
:4,5mo6 移动行4,行5在行6之后
:%s /源字符串/目标字符串
:%s /源字符串/目标字符串/g 替换每一行中的所有
网络ip配置
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.72.128 GATEWAY=192.168.72.2 NETMASK=255.255.255.0 DNS1=114.114.114.114
网络ip配置后重启网络服务
使用命令使得配置文件生效:service network restart
centros java jdk 环境变量配置
- 使用root用户打开配置文件/etc/profile,向文件末尾追加内容如下:
export JAVA_HOME=/usr/javajdk export PATH=$JAVA_HOME/bin:$PATH
- 保存退出后让文件生效并验证是否配置成功
source /etc/profile javac -version
开放防火墙端口
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 开启8080端口(暂时开通)
发布web项目
- 将Web项目打成war包,通过Xftp工具将war包放在tomcat/webapp目录并启动
Mysql的下载和安装
(1)下载Mysql的repo源
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm(2)安装rpm包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
(3)安装Mysql
yum install mysql-server(4)启动服务
service mysqld start(5)查看服务状态
systemctl status mysqld(6)使用root用户登录
mysql -u root(7)修改临时密码
alter user 'root'@'localhost' identified by 'QiDian@666';attention:在安装好mysql之后,默认没有设置root账号对应密码的,可以通过如下命令查看到:
grep password /var/log/mysqld.log
使用远程客户端工具访问linux数据库
访问时可能会遇到1130,连接不上的问题,还需要更改root用户对应的访问ip。
use mysql; select host from user where user='root'; update user set host='%' where user='root'; flush privileges;
Shell编程
- Shell是一个命令行解释器,可以接收应用程序或用户命令,然后访问操作系统内核。
- Shell是一个功能相当强大的编程语言,易编写、易调试、灵活性强;
编写第一个程序
使用vi工具创建xxx.sh的文件。
以#!/bin/bash开头并编写代码后保存。
执行Shell程序的方式
- 方式一:./文件名,此方式需要执行权限。
- 方式二:/bin/bash 文件名,此方式不需要执行权限。
变量定义
定义变量:变量=值
撤销变量:unset 变量
定义规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
- 不能使用bash里的关键字。
- 中间不能有空格,可以有下划线。
- 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
- 变量的值如果有空格,需要使用双引号或单引号括起来。
常用运算符
流程控制语句