JavaWeb(二)

it2026-06-12  8

一、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)