java web:jsp

jsp


java server page
用途:主要用来生成html标签

在表现形式上类似于html 但多了一行
```
<%@ page contentType="text/html;charset=utf-8" %>
```
上面的代码称为 page 指令,主要作用就是指明此页面是一个jsp页面,并且通过contentType说明他的字符编码和格式
jsp 中有 
1. 指令: `<%@ 指令名 %>`
2. 脚本:  `<%  可以是任意java代码  %>`
3. 表达式: `<%= 表达式 %>` 把执行结果显示在页面上

 EL表达式语言


expression language 在jsp用来展示结果的语言
语法
${ 表达式语言 }

要用el表达式显示复杂的内容,需要把内容提前放入`作用域`, el再从`作用域`中把内容取出来显示
//          设置属性
pageContext.setAttribute("名称", Object); // 把内容起一个名字放入作用域

之后就可以通过EL表达式
${pageScope.名称}

el表达式可以通过
${对象.属性名} 但这里的属性名,依据是对象的get方法,而不是私有属性名
把get方法中get去掉(或把is方法的is去掉),剩余的单词首字母小写,作为对象的属性名,例如

getName() ==> name
getUsername() ==> username
getHelloWorld() ==> helloWorld
isClose()  ==>  close

 JSTL


java 标准标签库
java standard tag library

主要的工具就是配合el表达式,实现循环,条件判断等功能
前提: 加入jstl-1.2的jar包
导入标签库
<%@ taglib uri="标签库唯一标识" prefix="前缀" %>

1) forEach
```
<c:forEach items="要遍历的集合" var="临时变量名" begin="起始数字" end="结束数字">
    ${临时变量名}
</c:forEach>
```
要遍历的集合 必须使用${} 从作用域获取

2 )if
```
<c:if test="布尔条件">内容</c:if>
```

3)choose 类似于 if elseif else

语法:
```
<c:choose>
  <c:when test="条件1">内容1</c:when>
  <c:when test="条件2">内容2</c:when>
  ...
  <c:when test="条件n">内容n</c:when>
  <c:otherwise>以上条件都不成立时</c:otherwise>
</c:choose>
```

4)out 用来输出特殊内容
它可以对${}输出的内容进行控制,可以控制是否忽略html代码
```
<c:out escapeXML="false" value="${作用域变量}"> 不忽略html
```
```
<c:out escapeXML="true" value="${作用域变量}"> 忽略html,(当做普通文本)
```

5)fmt:formatDate 用来格式化日期
fmt:formatNumber 用来格式化数字

语法示例:

需要添加指令:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
```
<fmt:formatDate value="日期对象" pattern="日期格式"/>

<fmt:formatNumber value="数字对象" pattern="数字格式"/>
```
数字格式 `#` 和 `0` 其中0可以用来前置补零或后置补零

MVC 思想


Model 模型 ==>  数据(例如从数据库查询出来的list集合, 里面包含java对象)
View  视图 ==>  数据的展现形式 (jsp就是一种视图技术)
Controller 控制器 ==> 把模型和视图联系起来 (servlet 充当控制器作用)

由servlet器查询数据,把数据放入作用域,跳转至jsp视图
jsp视图从作用域中获取数据,并展示

> 注意: 服务器常见的错误类型
500 Internal Server Error 服务器内部错误,由于应用程序自己没有正确处理异常,异常抛给了tomcat,这时就会出现500
404 Not Found 资源未找到错误,发生于要访问的资源不存在(资源可能是servlet, jsp, html)
405 Method Not Allowed 方法不支持,
    当没有覆盖doGet但发送了get请求时
    当没有覆盖doPost但发送了post请求时
200 OK 表示这次请求正常,没有错误
304 这个文件没有修改,请浏览器使用上一次缓存的文件

这些数字称为响应状态码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值