Jsp知识点

一、概念

jsp全称Java Server Pages,是一种动态网页开发技术。

jsp=html页面+java代码,jsp是运行在服务器端的,运行完之后,把动态生成的html页面再使用io流写回给浏览器,浏览器接收并且解析后再呈现出来效果。

二、代码

jsp页面中嵌入java代码,一共有jsp全称Java Server Pages,是一种动态网页开发技术。三种方式:表达式(expression)、脚本(scriptlet)、声明(declaration)

表达式:<%= %>

将来翻译到java文件中的位置:_jspService方法中,out.print(..)代码的参数;注意,在jsp中的表达式,语句的最后不需要加;号

脚本:形式:<% %>

<%
  Student s = new Student();
  String name = "tom";
  String username = s.getName();
  List<String> list = new ArrayList<String>();
  list.add("hello")
%>

所以,在一个普通的方法中我们可以写什么样的代码,那么在脚本中就可以写什么样的代码.

声明:形式:<%! %>

<%!
  private String name;
  public String go(){
    System.out.println("hello world "+name);
    return "this is go()";
 }
%>

三、指令:

jsp的指令是给jsp引擎看的,让jsp引擎在翻译jsp页面成java文件的时候,知道需要注意哪些地方的设置。比如页面中的编码、页面中脚本里面所用的编程语言、翻译的java文件中需要引入哪些包下的java类等等

写法:<%@指令名字 属性名="属性值" .. %>

分类:page指令(最常用)include指令、taglib指令

page:

page是常用的一个jsp指令,可以用来指定当前jsp的一些基本设置

例如,新建jsp页面后,文件头部会默认有以下page指令的设置
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
其作用分别是
指定当前jsp页面中嵌入的语言是java
指定写回给浏览器页面的时候,contentType的内容
指定当前页面件保存时候所用的编码

include:

nclude指令,可以将另一个页面的显示内容,引入到当前页面中的指定位置
形式,<%@include file="" %>

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
<h1>hello!jsp</h1>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
</head>
<body>
<h1>index</h1>
<%@ include file="/hello.jsp" %>
</body>
</html

taglib:

taglib指令,在jsp中可以引入标签库,然后就可以使用标签库中的标签,来完成相应的功能了

加在开头的位置

例如,引入JSTL标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

例如,引入spring框架的标签库<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %> 

注意1,引入标签库,需要先在项目中引入对应的jar包(将jar包粘贴到WEB-INF文件夹下的lib目录,如果在Libraries文件夹下有粘贴的jar包,那么jar包就生效了)
注意2,uri属性,指的是标签库的设置的URI地址
注意3,prefix属性,指的是给引入的标签库起一个别名,这样使用起来较为方便

四、动作元素

jsp的内置标签,它的本质就是把固定的java代码,封装成了标签的形式。

例如,<jsp:useBean id="s" class="com.briup.bean.Student" scope="page"></jsp:useBean>

JSP的动作元素中,常被用的有俩个:forward、include

例如:页面跳转,<jsp:forward page="target.jsp"></jsp:forward>

五、注释

jsp的注释方式有三种:

 Java注释:

单行//      多行/*内容*/    文档/**内容*/

特点:1. 用户在浏览器中右键查看源代码 【不能】 看到这个注释。
           2. 在服务器端,这个jsp页面被翻译成的java文件中 【能】 看到这个注释.

html注释:

<!-- html/xml中的注释方式 --> 

特点:1. 用户在浏览器中右键查看源代码 【能】 看到这个注释
           2. 在服务器端,这个jsp页面被翻译成的java文件中 【能】 看到这个注释.

注意,jsp动作元素,放在这种注释里面是不起作用(注释不起作用,jsp动作元素正常执行)

 jsp注释(隐藏注释):

<%-- jsp中的注释方式(隐藏注释)--%>

特点:1. 用户在浏览器中右键查看源代码 【不能】看到这个注释。
           2. 在服务器端,这个jsp页面被翻译成的java文件中 [不能] 看到这个注释.

六、jsp九大内置对象

 

 前四个都是范围对象,pageContext<request<session<application

调用本身用page 

输出流out

配置config

异常,一般很少用,exception

七、EL表达式

形式:${代码}

例如,接收客户端参数${param.name1 } 

例如,指定范围并取值${pageScope.name2 }

例如,可以不指定范围再去取值${name} ,遍历全部变量,没有就不输出

例如,取出一个对象中的属性值${requestScope.student.id}

例如,输出字符串${"hello"} 

例如,输出运算结果或者boolean表达式${1+1 }或

//为空的话返回true
${empty "" }
${empty "hello" }

例如,输出数组、集合中的元素${str[0] }<br>

八、JSTL标签库

常用的几种标签为:

<c:forEach> 标签,遍历标签

<c:forEach items="${list }" var ="stu" begin="0" end ="3" varStatus="status"
step="1"> 
 ${status.index } : ${stu.id } - ${stu.name } - ${stu.age } <br> 
</c:forEach>

varStatus 表示当前循环遍历的序号,begin="" 默认值是0 , end="" 默认值是最后一个元素, step="" 默认值是1,一般的遍历只要写var和items来个属性即可

<c:if> 标签,判断标签

<c:if test="${score>85 }">
  <font color="red">你的分数超过了85分</font>
</c:if>

<c:import> 标签

和 <jsp:include> 的作用基本相同,但是 <c:import> 还可以选择把引入的内容先保存在一个变量
中,之后通过EL表达式再拿出来显示

<c:import var="data" url="a.jsp" />
<div>${data}</div>

<c:redirect> 标签,重定向标签

<c:redirect url="a.jsp"/> 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值