JavaWeb(二)

一、JSTL标签和EL表达式

1.EL表达式

(一)主要功能

EL表达式简化了JSP的表达式写法,可以使得我们更方便地去访问和获取各种数据。
主要功能有:

  • 依次访问(依次尝试获取)pageContext、request、session和application作用域对象存储的数据。
  • 获取请求参数值。
  • 访问Bean对象的属性。
  • 访问集合中的数据。
  • 输出简单的运算结果

(二)访问类型

(1)内置对象

特意标黑 是为了表明两者的对应关系

  • JSP传统表达式:<%=request.getAttribute(“ varName”)%>
  • 用EL实现: ${ varName }
    为方便大家理解,给出以下执行流程图(图片来自于拉勾教育):
    在这里插入图片描述
(2)请求参数
  • 在EL之前使用下列方式访问请求参数的数据
    request.getParameter(name);
    request.getParameterValues(name);
  • 在EL中使用下列方式访问请求参数的数据
    param:接收的参数只有一个值。
    paramValues:接受的参数有多个值

示例:

<!-- 获取指定参数的数值 -->
${param.name}
<!-- 获取指定参数中指定下标的数值 -->
<!-- 如复选框组和下拉列表组等-->
${paramValues.hobby[0]}
(3)JavaBean对象
  • 方式一: $ { 对象名 . 属性名 },例如:${user.name}
  • 方式二: $ { 对象名 [“属性名”] },例如:${user[“name”]}
  • 方式二与方式一效果相同,但是,当属性中的值包含一些特殊字符如非字符或数字的字符时,我们一定要使用方式二去访问。
  • 方式二可以实现动态取值:
	<%
	Student s=new Student();//属性有 姓名name和学号id
	s.setId("1");
	s.setName("尔康");
	request.setAttribute("prop","id"); //第一次取 id
	request.setAttribute("prop","name"); //第二次 取name
	//即若想更改请求对象中的参数值,用方式一去获取的话得重新修改语句 即如下方JSP表达式所示
	%>
	<!-- JSP表达式-->
	<%= s.getId %> //第一次
	<%= s.name %> // 第二次还需要再写一次不同的值
	<!-- EL表达式 -->
	${ user[prop] }//更改参数中的值时,用方法二访问时不需要更改语句,即 动态取值
(4)集合
<!-- student为ArrayList类型的对象 -->
	${student[0].name}// 取第一个元素

(三)常用内置对象

(图片来源于拉勾教育)
在这里插入图片描述

2.JSTL

(一)基本概念

  • JSTL( JSP Standard Tag Library ) 被称为JSP标准标签库。
  • 库中包含多种类型标签,可替代传统HTML文档中的许多标签,可以提高程序可读性,降低维护难度。

(二)标签

(1)常用核心标签
<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>
	html标签或JSTL标签 或EL表达式 jsp表达式都可
	<c:otherwise>
   不满足上述when条件时执行
	</c:otherwise>
</c:choose >

<c:forEach var=“循环变量” items=“集合”>
	执行语句
</c:forEach>
(2)常用函数标签
//许多方法的使用 和java中基本一致 
<%@ taglib prefix="fn" 
uri="http://java.sun.com/jsp/jstl/functions" %>
(3)常用格式化标签
<%@ taglib prefix="fmt" 
uri="http://java.sun.com/jsp/jstl/fmt" %>

二、过滤器(Filter)和监听器(Listener)

1.Filter

(一)基本概念

  • JavaWeb三大组件Servlet、Fillter、Listener
    工作方式如下图(过滤器的功能不限于以下所示的举例):
    在这里插入图片描述
    过滤器的执行顺序取决于web.xml文件中标签对的位置先后。
    在这里插入图片描述

(二)使用方式

  • 自定义类实现Filter接口并重写doFilter方法
    • chain.doFilter(request,response)相当于放行的意思
  • web.xml配置过滤器(与Servlet配置方式一致)
<filter>
  <filter-name>LoginFilter</filter-name>
  <filter-class>com.lagou.LoginFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>LoginFilter</filter-name>
	// /*意思为访问所有文件前都先进行过滤,即执行实现Filter接口的方法,符合条件就放行
  	<url-pattern>/*</url-pattern> 
</filter-mapping>

2.Listener

  • Servlet规范中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理。
  • 容器产生的事件分类如下:
    • 生命周期相关的事件。
    • 属性状态相关的事件。
    • 存值状态相关的事件。
  • 底层原理是采用接口回调的方式实现
    使用方式
  • 自定义类实现所需监听事件的类型的接口,重写接口中的方法
  • 在对应事件发生的方法中 自定义需实现的操作。如实现统计在线人数或者新用户增加至群组等。
  • web.xml中配置监听器
    注意
  • HttpSessionBindingListener监听器和类绑定的时候不需要在web.xml中配置

三、Linux系统

1.安装方式

(一)镜像系统

这里以CentOS系统为例:

  • Vmware的下载和安装
    下载地址:https://www.vmware.com/cn.html
    所有步骤均可以默认执行,安装路径不能存在中文
  • CentOS系统的下载和安装
    下载地址:https://www.centos.org/
    下载好镜像文件后,在Vmware软件中选择以镜像方式安装系统

(二)云服务器

  • 镜像市场选择自己喜欢的Linux系统,我自己选择的是CentOs7没有带图形界面的,刚学Linux的童鞋建议先安装个有界面的熟悉熟悉操作。
  • 云服务器安装前有设置用户密码的选项,密码为登录系统时的密码。

2.目录结构

(一)框架结构

在这里插入图片描述
具体介绍如下图(图片来源拉勾教育):
在这里插入图片描述

(二)Vi工具的使用

vi和vim是Linux系统命令行下的文本编辑器,通常格式为:vi 文件名 或 vim 文件名。

(1)三种模式

在这里插入图片描述

四、Linux系统开发环境安装

1.Xshell工具

  • 主机框中为云服务器公网IP或者虚拟机中系统的静态IP
    在这里插入图片描述

(一)遇到的问题

自己笔记本配置环境时,电脑死机重启后Mysql服务如何也启动不了,折腾了一天多,最后还是没解决,应该是机器的问题,暂时先挂号在这,到时候回头有眉目了再来完善解决思路。
无奈之下,突然想起自己的云服务器还在跑着,上去把还没过期的Windows系统镜像换成了CentOs7,按照JDK->Tomcat->Mysql的顺序安装完以后,接下来要想远程与云服务器连接,还需要配置好云服务器的安全组,我因为之前搭WordPress时有现成的安全组,直接添加了,总结一下就是以下几步:
1.云服务器安装好后,阿里云服务器会自行启动,可以远程连接也可以用Xshell工具连接
2.配置云服务器安全组,放行所需的端口
3.CentOs系统中:会用到的指令

  • 输入指令 firewall-cmd --state 查看防火墙是否开启
    如果没有开启,则需要开启防火墙
    指令 systemctl start firewalld.service
  • 输入指令 firewall-cmd --zone=public --add-port=8080/tcp --permanent 开放8080端口 (mysql的话 将8080改为3306即可)
  • 输入指令 firewall-cmd --reload 重新加载 显示success即表示成功
    4.配置完防火墙以后,远程连接数据库和服务器就都可以正常访问了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值